我有一个多维的
尽管在编译时知道数组的大小,但我希望避免使用
我也不想每次都计算它。
也许这两个偏好对于多维数组来说是不可能的?
我如何有效地找到
std::array
,正在寻找适当的(方便和高效)方法来查找其大小(以单元格数或字节为单位)。
size()
仅返回最后一维的大小(这是可以理解的)。std::array<std::array<std::array<std::array<double, 2>, 3>, 6>, 100> my_array;
my_array.size(); // returns 100
尽管在编译时知道数组的大小,但我希望避免使用
#define SIZE_OF_MY_ARRAY
或全局变量,因为我正在寻找一种比传递数组大小更好的方法(就像“旧”数组中那样,而不是std数组),或者告诉其他人使用定义的术语。我也不想每次都计算它。
也许这两个偏好对于多维数组来说是不可能的?
我如何有效地找到
my_array
的总大小?我正在使用c++11。
my_array.size() * my_array[0].size() * my_array[0][0].size() * my_array[0][0][0].size()
怎么样? - Blazesizeof(my_array)
,以单元格为单位的大小是my_array.size()
,双精度浮点数的数量是sizeof(my_array) / sizeof(double)
。 - user7860670size = 2 * 3 * 6 * 100;
? - vahanchosizeof(my_array)/sizeof(double)
可以得到元素数量吗? - Peter - Reinstate Monica