std::string array[] = { "one", "two", "three" };
如何在代码中找出array
的长度?
答案 0 :(得分:6)
如果您支持C ++ 11,则可以使用std::begin
和std::end
。:
int len = std::end(array)-std::begin(array);
// or std::distance(std::begin(array, std::end(array));
或者,您可以编写自己的模板函数:
template< class T, size_t N >
size_t size( const T (&)[N] )
{
return N;
}
size_t len = size(array);
这适用于C ++ 03。如果您要在C ++ 11中使用它,那么值得将其设为constexpr
。
答案 1 :(得分:4)
使用
中的sizeof()
- 运算符
int size = sizeof(array) / sizeof(array[0]);
或更好,请使用std::vector
,因为它提供std::vector::size()
。
int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );
Here是文档。考虑基于范围的示例。
答案 2 :(得分:3)
C ++ 11提供了std::extent
,它为您提供了数组N
维度内元素的数量。默认情况下,N
为0,因此它为您提供数组的长度:
std::extent<decltype(array)>::value
答案 3 :(得分:2)
像这样:
int size = sizeof(array)/sizeof(array[0])