我试图用一些数组填充矢量。 这段代码有什么问题?
#include <vector>
#include <array>
using namespace std;
int main(){
double p[10]{1,2,3,4,5,6,7,8,9,10};
vector<double[10]> p_prev;
p_prev.push_back(p);
return 0;
}
我正在使用g++
-std=c++11
进行编译。
error: request for member '~ double[10]' in '* __p', which is of non-class type 'double[10]'
如何正确推动?
答案 0 :(得分:2)
数组不符合容器元素的要求。试试std :: array:
#include <vector>
#include <array>
using namespace std;
int main(){
std::array<double, 10> p{1,2,3,4,5,6,7,8,9,10};
vector<std::array<double, 10> > p_prev;
p_prev.push_back(p);
return 0;
}
答案 1 :(得分:2)
您无法将C样式数组存储在vector
或任何其他容器中。因为对于要存储在vector
中的类型,它需要是“可分配的”,但是C风格的数组不能满足这一要求。
改为使用std::array
。