簡體   English   中英

在C ++中將一個數組復制到另一個數組

[英]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 ++中是否還有其他方法可以將一個數組復制到另一個數組中?

您的問題尚不完全清楚,但是如果bdata都是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 ,范圍構造/賦值/插入將繼續起作用。

如果bint[] (即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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM