我有一个像这样创建的数组:
std::vector<int> data(n);
我有另一个数组b
(c数组b [])有n个int值。我想将这些值放入data
:
for (int i =0 ; i<n, i++) {
data[i] = b[i];
}
C ++中是否还有其他方法可以将数组复制到另一个数组中?
答案 0 :(得分:3)
您的问题并不完全清楚,但如果b
和data
都是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样式数组,则可以执行n
和b
,范围构造/赋值/插入将继续有效。
答案 1 :(得分:2)
如果b
是int[]
(即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);