[英]Copying an array into another array in C++
我有一個這樣創建的數組:
std::vector<int> data(n);
我有另一個數組b
(c Array b [])具有n個int值。 我想將這些值放入data
:
for (int i =0 ; i<n, i++) {
data[i] = b[i];
}
C ++中是否還有其他方法可以將一個數組復制到另一個數組中?
您的問題尚不完全清楚,但是如果b
和data
都是std::vector<int>
,那么您可以做五件相關的事情:
用b
初始化新data
std::vector<int> data = b; // copy constructor
用b
初始化新data
std::vector<int> data(begin(b), begin(b) + n); // range constructor
將 b
完全復制到現有data
(覆蓋當前data
值)
data = b; // assignment
將 b
的前n
元素復制到現有data
(覆蓋當前data
值)
data.assign(begin(b), begin(b) + n); // range assignment
將 b
的前n
元素附加到現有data
data.insert(end(a), begin(b), begin(b) + n); // range insertion
如果b
恰好具有n
元素,則也可以使用end(b)
代替begin(b) + n
。 如果b
是C樣式的數組,則可以using std::begin;
並using std::end
,范圍構造/賦值/插入將繼續起作用。
如果b
是int[]
(即C數組),則可以執行以下操作:
std::vector<int> data(b + 0, b + n);
如果b
也是std::vector
則可以執行以下操作:
std::vector<int> data = b;
您可以使用copy
(但請確保目標向量中有足夠的元素!)
copy(begin(b), end(b), begin(data))
std::vector<int> data(b, b + n);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.