#include <iostream>
#include<string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <algorithm>
#include <functional>
#include<iterator>
#include<numeric>
using namespace std;
template<typename T>
void printElement(T &t)
{
T::iterator it;
for (it=t.begin();it!=t.end();it++)
{
cout<<*it<<" ";
}
}
void display()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int> v2;
v2.resize(v.size());
copy(v.begin(),v.end(),v2.begin());
printElement(v2);
}
void display2()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(3);
v.push_back(3);
v.push_back(5);
v.push_back(6);
v.push_back(9);
cout<<"替换前"<<endl;
printElement(v);
replace(v.begin(),v.end(),3,4);
cout<<endl<<"替换后"<<endl;
printElement(v);
}
//把偶数替换为0
bool isEven(int &i)
{
if (i%2==0)
{
return true;
}
return false;
}
void display3()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(3);
v.push_back(3);
v.push_back(5);
v.push_back(6);
v.push_back(9);
cout<<"替换前"<<endl;
printElement(v);
replace_if(v.begin(),v.end(),isEven,0);
cout<<endl<<"替换后"<<endl;
printElement(v);
}
//交换两个容器的元素
void display4()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int> v2;
v2.push_back(4);
v2.push_back(5);
v2.push_back(6);
printElement(v);
cout<<endl;
printElement(v2);
cout<<endl;
swap(v,v2);
printElement(v);
cout<<endl;
printElement(v2);
cout<<endl;
}
void display5()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
int num = accumulate(v.begin(),v.end(),0);
cout<<num<<endl;
}
void display6()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int> v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(5);
v1.push_back(6);
vector<int> v2;
v2.resize(v.size()+v1.size());
vector<int>::iterator it = set_union(v.begin(),v.end(),v1.begin(),v1.end(),v2.begin());
printElement(v2);
v2.clear();
v2.resize(v.size()+v1.size());
cout<<endl;
it = set_intersection(v.begin(),v.end(),v1.begin(),v1.end(),v2.begin());
printElement(v2);
v2.clear();
v2.resize(v.size()+v1.size());
cout<<endl;
it = set_difference(v.begin(),v.end(),v1.begin(),v1.end(),v2.begin());
printElement(v2);
}
int main()
{
display6();
system("pause");
return 0;
}
STL常用的拷贝替换算术集合算法
最新推荐文章于 2024-07-24 17:18:21 发布