如何对字符串数组中的字符串数进行求和,其中未明确定义需要多少元素?
string str[] = { "astring", "bstring", "cstring", "dstring", "zstring" };
Run Code Online (Sandbox Code Playgroud)
需要找出阵列有多少元素?
Cas*_*Cow 10
template< typename T, size_t N >
/*constexpr*/ size_t size( T(&arr)[N]) )
{
return N;
}
Run Code Online (Sandbox Code Playgroud)
constexpr 如果可用(C++ 11)将允许您将静态(编译时)用法的返回值用作另一个数组的大小.
如果str[]是静态定义的(如图所示),那么这将起作用:
const size_t numElements = sizeof(str) / sizeof(str[0]);
Run Code Online (Sandbox Code Playgroud)
如果它是动态创建的,那么你将需要一个标记来指示最后一个元素(0如果它是一个指针数组,通常会使用它).无论是那个还是调用者都告诉你有多少元素(也很常见).