常用的拷貝與替換演算法

2021-09-24 19:44:59 字數 1788 閱讀 9502

copy

vectorvecints;

vecints.push_back(1);

vecints.push_back(3);

vecints.push_back(5);

vecints.push_back(7);

vecints.push_back(9);

vectorvecintb; 

vecintb.resize(5);   //擴大空間

copy(vecints.begin(),vecints.end(), vecintb.begin());

//此時vecintb:

replace

replace(beg,end,oldvalue,newvalue):    將指定範圍內的所有等於 oldvalue 的元素替 換成 newvalue。

vectorvecints;

vecints.push_back(1);

vecints.push_back(3);

vecints.push_back(5);

vecints.push_back(3);

vecints.push_back(9);

replace(vecints.begin(),vecints.end(), 3, 8);  //

replace_if

replace_if : 將指定範圍內所有操作結果為 true 的元素用新值替換。 舉個例: replace_if(vecintsb.begin(),vecintsb.end(),greaterthree,newval) 其中vecintsb是用 vector宣告的容器 greaterthree 函式的原型是 bool greaterthree(int inum)

如下:

bool greaterthree(int inum)

else

}//把大於等於 3 的元素替換成 8

vectorvecintsb;

vecintsb.push_back(1);

vecintsb.push_back(3);

vecintsb.push_back(5);

vecintsb.push_back(3);

vecintsb.push_back(9);

replace_if(vecintsb.begin(),vecintsb.end(),greaterthree,8);

swap

swap: 交換兩個容器的元素

vectorvecints;

vecints.push_back(1);

vecints.push_back(3);

vecints.push_back(5);

vecints.push_back(15);

vectorvecintb;

vecintb.push_back(2);

vecintb.push_back(4);

vecintb.push_back(45);

vecintb.push_back(54);

swap(vecints, vecintb);  //交換

常用的拷貝和替換演算法

copy 複製 vectorvecinta vecinta.push back 1 vecinta.push back 3 vecinta.push back 5 vecinta.push back 7 vecinta.push back 9 vectorvecintb vecintb.resize...

STL學習3常用演算法3 6常用拷貝替換演算法

1 copy複製 1.1 將容器中指定範圍的元素拷貝到另一容器中 1.2 目標容器要有容量 2 replace按值替換 2.1 將區間內指定的舊元素替換為新元素 3 replace if 按條件替換 3.1 將區間中符合條件的舊元素替換為新元素 4 swap 交換 4.1 交換兩個容器中的所有元素 ...

STL之拷貝和替換演算法

vector vecinta vecinta.push back 1 vecinta.push back 3 vecinta.push back 5 vecinta.push back 7 vecinta.push back 9 vector vecintb vecintb.resize 5 擴大空...