2

我正在尝试用一些数组填充向量。这段代码有什么问题?

#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]'

我该如何正确推动它?

4

2 回答 2

2

数组不能满足容器元素的要求。尝试标准::数组:

#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;
}
于 2013-07-03T07:42:10.427 回答
2

您不能将 C 样式的数组存储在一个vector容器或任何其他容器中。因为对于要存储在 中的类型vector,它需要是“可赋值的”,但 C 风格的数组不能满足这一点。

改为使用std::array

于 2013-07-03T07:42:21.973 回答