在另一个`std :: array`中使用`std :: array`大小

时间:2019-06-04 22:56:45

标签: c++11 c++17

我在代码的一部分中定义了std::array

std::array<int, 303> data;

我想声明另一个具有相同大小的std::array。像这样:

std::array<double, data.size()> other_data;

基本上,我想使用data中的信息,而不是使用相同的常量。 但是它无法使用-std=c++11进行编译。 甚至有可能,如果是的话,这样做的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您的代码正常,可以毫无问题地编译:https://godbolt.org/z/pjFmbD。不,data不必为const,因为std::array::sizeconst constexpr:  https://en.cppreference.com/w/cpp/container/array/size

答案 1 :(得分:-2)

您可以根据sizeof计算元素计数

sizeof(data)/sizeof(data[0])