日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【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的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。