我有一个指向双数组的第一个元素的指针:double* p
。
我也知道数组的长度:n
。
有没有办法可以将其复制到std::vector
?最好使用构造函数和分配器。我想做一些像
std::vector<double> v = std::vector(p, n);
但无法确定哪个构造函数最接近于此。我正在使用C ++ 11。
答案 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 );