STL之拷貝和替換演算法

2021-08-11 08:39:12 字數 1675 閱讀 9764

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); //擴大空間

copy(vecinta.begin(), vecinta.end(), vecintb.begin()); //vecintb:

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

vector

vecinta;

vecinta.push_back(1);

vecinta.push_back(3);

vecinta.push_back(5);

vecinta.push_back(3);

vecinta.push_back(9);

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

replace_if : 將指定範圍內所有操作結果為true的元素用新值替換。 

用法舉例:

replace_if(vecinta.begin(),vecinta.end(),greaterthree,newval)

其中vecinta是用vector宣告的容器 

greaterthree 函式的原型是 bool greaterthree(int inum)

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

vector

vecinta;

vecinta.push_back(1);

vecinta.push_back(3);

vecinta.push_back(5);

vecinta.push_back(3);

vecinta.push_back(9);

replace_if(vecinta.begin(), vecinta.end(), greaterthree, 8); // greaterthree的定義在上面。

swap: 交換兩個容器的元素

vector

vecinta;

vecinta.push_back(1);

vecinta.push_back(3);

vecinta.push_back(5);

vector

vecintb;

vecintb.push_back(2);

vecintb.push_back(4);

swap(vecinta, vecintb); //交換

void main52_copy()

bool great_equal_5(int &n)

return

false;

}void main53_replace_replaceif()

void main54_swap()

常用的拷貝和替換演算法

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演算法4 拷貝和替換

define crt secure no warnings include include include include include include include include 輸出流 using namespace std template void printelem t t cout...