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

P45*_*ent 5 c++ initialization vector c++11

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

我也知道数组的长度:n.

有没有办法可以将其复制到一个std::vector?最好使用构造函数和分配器.我想做点什么

std::vector<double> v = std::vector(p, n);
Run Code Online (Sandbox Code Playgroud)

但无法弄清楚哪个构造函数最接近于此.我正在使用C++ 11.

0x4*_*2D2 13

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

std::vector<double> v(p, p + n);
Run Code Online (Sandbox Code Playgroud)


Vla*_*cow 11

尝试

std::vector<double> v( p, p + n );
Run Code Online (Sandbox Code Playgroud)

或者如果已经定义了矢量那么

v.assign( p, p + n );
Run Code Online (Sandbox Code Playgroud)

如果你想附加矢量那么

v.insert( v.end(), p, p + n );
Run Code Online (Sandbox Code Playgroud)