當前位置:
首頁 >
【C++】41. std::copy和assign的用法
發布時間:2025/3/21
53
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【C++】41. std::copy和assign的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于std::copy的用法,可以參考 https://blog.csdn.net/a_ran/article/details/17385911,我這里直接介紹對于std::vector來說std::copy和assign的用法。
std::vector和std::string有個assign()成員函數,用于拷貝、賦值操作,它們允許我們順次地把一個std::vector或std::string 對象的部分內容拷貝到另一個std::vector或std::string 對象上。
當需要把一個vector對象的元素添加到另一個vector對象中時,可以有兩種方法:
std::vector<int> vct1 = {1,2,3,4,5,6}; std::vector<int> vct2; // 方法1:使用assign vct2.assign(vct1.begin(), vct1.end()); // 方法1:使用std::copy std::copy(vct1.begin(), vct1.end(),std::back_inserter(vct2)); std::cout << "A處: "; for (auto v : vct2) {std::cout << v << ", "; }vct2.assign(vct1.begin(), vct1.end());std::cout << "B處: "; for (auto v : vct2) {std::cout << v << ", "; }但是在多次添加時,使用std::copy就很方便了。如:把vct1和vct2都添加進vct3中:
std::vector<int> vct1 = {1,2,3,4,5,6}; std::vector<int> vct2 = {7,8,9}; std::vector<int> vct3; std::copy(vct1.begin(), vct1.end(), std::back_inserter(vct3)); std::copy(vct2.begin(), vct2.end(), std::back_inserter(vct3)); for (auto v : vct3) {std::cout << v << ", "; }輸出結果:
如果想使用assign就做不了,而只能使用一次assign把vct1添加進vct3中,后面的vct2就必須使用for遍歷vct2的每個元素,然后一個一個push_back進vct3中。使用std::copy就很方便了,調用兩次std::copy即可完成這個功能。
總結
以上是生活随笔為你收集整理的【C++】41. std::copy和assign的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数学和算法】协方差矩阵、方差
- 下一篇: 【Linux】34. shell脚本判断