常用的拷貝和替換演算法

2021-10-05 06:12:11 字數 1697 閱讀 6423

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

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

replace()

vectorvecinta;

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()

用法舉例:

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

其中 vecinta是用vector宣告的容器

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

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

vectorvecinta;

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()

vectorvecinta;

vecinta.push_back(1);

vecinta.push_back(3);

vecinta.push_back(5);

vectorvecintb;

vecintb.push_back(2);

vecintb.push_back(4);

swap(vecinta, vecintb);  //交換

#include using namespace std;

#include "string"

#include #include #include "set"

#include #include "functional"

#include "iterator" //輸出流迭代器的標頭檔案

void printv(vector&v)

//一元謂詞

bool great_equal_5(int &n)

return false;

}//替換

void replace()

//交換

void swap()

void main()

常用的拷貝與替換演算法

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 ...

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 擴大空...

90 C 常用拷貝和替換演算法 replace

2.replace 功能描述 將容器內指定範圍的舊元素改為新元素 函式原型 replace iterator beg,iterator end,oldvalue,newvalue 將區間內舊元素 替換成 新元素 beg開始迭代器 end結束迭代器 oldvalue 舊元素 newvalue 新元素 ...