我在代码的一部分中定义了std::array
std::array<int, 303> data;
我想声明另一个具有相同大小的std::array
。像这样:
std::array<double, data.size()> other_data;
基本上,我想使用data
中的信息,而不是使用相同的常量。
但是它无法使用-std=c++11
进行编译。
甚至有可能,如果是的话,这样做的最佳方法是什么?
答案 0 :(得分:1)
您的代码正常,可以毫无问题地编译:https://godbolt.org/z/pjFmbD。不,data
不必为const,因为std::array::size
是const constexpr
:
https://en.cppreference.com/w/cpp/container/array/size
答案 1 :(得分:-2)
您可以根据sizeof计算元素计数
sizeof(data)/sizeof(data[0])