从已知大小的double *数组</double>构造std :: vector <double>

时间:2014-03-27 15:39:32

标签: c++ c++11 vector initialization

我有一个指向双数组的第一个元素的指针:double* p

我也知道数组的长度:n

有没有办法可以将其复制到std::vector?最好使用构造函数和分配器。我想做一些像

这样的事情
std::vector<double> v = std::vector(p, n);

但无法确定哪个构造函数最接近于此。我正在使用C ++ 11。

2 个答案:

答案 0 :(得分:13)

std::vector<>有一个带范围的构造函数。您可以像这样使用它:

std::vector<double> v(p, p + n);

答案 1 :(得分:11)

尝试

std::vector<double> v( p, p + n );

或者如果已经定义了矢量

v.assign( p, p + n );

如果你想附加矢量,那么

v.insert( v.end(), p, p + n );