导航
1.copy() //用于拷贝一个容器到另一个容器
2.replace() //将容器中的数进行替换
3.replace_if() //将容器中符合条件的数进行替换
4.swap() //将两个容器中数据进行互换
——————————————————————————————————————
1.copy()函数用法
copy(iterator beg,iterator end,iterator tar)
iterator beg:迭代器初始位置
iterator end:迭代器末尾位置
iterator tar:目标迭代器初始位置
注意:使用copy()之前要分配空间,resize()
#include <iostream> using namespace std; #include <vector> #include <algorithm> void print(int val) { cout<<val<<" "; } void test() { //创建容器 vector<int> v1; for(int i=0;i<5;i++) v1.push_back(i); vector<int> v2; //拷贝之前要分配空间 v2.resize(v1.size()); //进行拷贝 copy(v1.begin(),v1.end(),v2.begin()); for_each(v2.begin(),v2.end(),print); } int main() { test(); return 0; }
——————————————————————————————————————
2.replace() 函数使用
原型:replace(iterator beg,iterator end,oldval,newval)
iterator beg:迭代器初始位置
iterator end:迭代器末尾位置
oldval:容器中旧的数值
newval:将旧的数值改为新的数值
#include <iostream> using namespace std; #include <vector> #include <algorithm> void print(int val) { cout<<val<<" "; } void test() { //创建容器 vector<int> v1; //插入数据 v1.push_back(10); v1.push_back(20); v1.push_back(10); v1.push_back(10); cout<<"替换前:"<<endl; for_each(v1.begin(),v1.end(),print); cout<<endl; //将容器中10替换为100 replace(v1.begin(),v1.end(),10,100); cout<<"替换后:"<<endl; for_each(v1.begin(),v1.end(),print); } int main() { test(); return 0; }
运行结果:
——————————————————————————————————————
3.replace_if() 函数用法
原型:replace_if(iterator beg,iterator end,_pred,newvalue)
iterator beg:迭代器初始位置
iterator end:迭代器末尾位置
_pred:谓词,提供筛选要求
newvalue:替换后的新值
#include <iostream> using namespace std; #include <vector> #include <algorithm> class print { public: void operator()(int val) //写一个仿函数 { cout<<val<<" "; } }; //写一个谓词,添加到replace_if中 class Greater20 { public: bool operator()(int val) { return val>20; //判断是否大于20 } }; void test() { vector<int> v; v.push_back(10); v.push_back(20); v.push_back(50); v.push_back(15); v.push_back(60); v.push_back(40); cout<<"替换前:"<<endl; for_each(v.begin(),v.end(),print()); cout<<endl; replace_if(v.begin(),v.end(),Greater20(),100); cout<<"替换后:"<<endl; for_each(v.begin(),v.end(),print()); } int main() { test(); return 0; }
作用:灵活的筛选数进行替换
——————————————————————————————————————
4.swap() 函数使用
原型:swap(v1,v2)
v1:容器1
v2:容器2
#include <iostream> using namespace std; #include <vector> #include <algorithm> class print { public: void operator()(int val) //写一个仿函数 { cout<<val<<" "; } }; void test() { vector<int> v; vector<int> v1; for(int i=0;i<10;i++){ v.push_back(i); v1.push_back(i+5); } cout<<"替换前:"<<endl; for_each(v.begin(),v.end(),print()); cout<<endl; for_each(v1.begin(),v1.end(),print()); cout<<endl; swap(v,v1); //将两个容器数据进行互换 cout<<"替换后:"<<endl; for_each(v.begin(),v.end(),print()); cout<<endl; for_each(v1.begin(),v1.end(),print()); cout<<endl; } int main() { test(); return 0; }