1 算术表达式:
#include <iostream>int main() {
int arr[4];
std::cout << sizeof( arr ) / sizeof( arr[0] ) << std::endl; // 输出4
}
或者
#include <iostream>int main() {
int arr[4];
std::cout << sizeof( arr ) / sizeof( arr ) << std::endl; // 输出4
}
2 函数模板参数自动推断:
#include <iostream>template <typename T, size_t N>
inline size_t Count( T ( & arr )[N] ) {
return N;
}
int main() {
int arr[4];
std::cout << Count( arr ) << std::endl; // 输出4
}
3标准C++模板库:
#include <type_traits> // 注意包含此头文件#include <iostream>
int main() {
int arr[4];
std::cout << std::extent<decltype( arr ), 0>::value << std::endl; // 输出4
}
4模板特化与自动类型推断:
include <iostream>template <typename T>
class ComputeSize;
template <typename T, size_t N>
class ComputeSize<T[N]> {
public:
static const size_t value = N;
};
int main() {
int arr[4];
std::cout << ComputeSize<decltype( arr )>::value << std::endl; // 输出4
}
5 Visual C++编译器预定义宏:
#include <cstdlib>#include <iostream>
int main() {
int arr[4];
std::cout << _countof( arr ) << std::endl; // 输出4
}
6 boost库:
#include "boost/rangehpp"#include <iostream>
int main(){
int arr[4];
std::cout << boost::size( arr ) << std::endl; // 输出4
}
上面的方法适用于静态数组,动态的数组(new[])是无法获取元素个数的。
上面的代码,自己可以编译运行看看,如果手上没有编译器测试上面的代码或者编译失败,可以在下面的页面上编译运行(最新版本的Visual C++):
>
以上就是关于关于C#,100分+相送。c#中socket编程中,怎么获取接受到得数据长度全部的内容,包括:关于C#,100分+相送。c#中socket编程中,怎么获取接受到得数据长度、Oracle数据字典(可用它动态获取字段名、长度、类型等)、后端编程Python3-数据库编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)