使用C ++将数组复制到另一个数组中

时间:2014-07-03 10:17:52

标签: c++ vector copy

我有一个像这样创建的数组:

std::vector<int> data(n);

我有另一个数组b(c数组b [])有n个int值。我想将这些值放入data

for (int i =0 ; i<n, i++) {
    data[i] = b[i]; 
}  

C ++中是否还有其他方法可以将数组复制到另一个数组中?

4 个答案:

答案 0 :(得分:3)

您的问题并不完全清楚,但如果bdata都是std::vector<int>,那么您可以做五件事:

使用data

初始化新的b
std::vector<int> data = b; // copy constructor

使用data

初始化新的b
std::vector<int> data(begin(b), begin(b) + n); // range constructor

将<{strong> b完全复制到现有data(覆盖当前data值)

data = b; // assignment

n的{​​{1}}个元素复制到现有的b中(覆盖当前的data值)

data

data.assign(begin(b), begin(b) + n); // range assignment 的{​​{1}}元素追加到现有n

b

如果data具有完全data.insert(end(a), begin(b), begin(b) + n); // range insertion 个元素,您也可以使用end(b)代替begin(b) + n。如果b是C样式数组,则可以执行nb,范围构造/赋值/插入将继续有效。

答案 1 :(得分:2)

如果bint[](即C数组),那么您可以这样做:

std::vector<int> data(b + 0, b + n);

如果b也是std::vector,那么您可以这样做:

std::vector<int> data = b;

答案 2 :(得分:1)

您可以使用copy(但请确保目标向量中有足够的元素!)

copy(begin(b), end(b), begin(data))

答案 3 :(得分:0)

std::vector<int> data(b, b + n);