#include<iostream>
#include<vector>
#include<algorithm>
#include<deque>
#include<stack>
#include<queue>
#include<list>
#include<set>
#include<map>
#include<functional>各个方法所需的头文件
排序:
1.sort
void printf01(int val)//打印方法
{
cout << val << endl;
}
void test9()
{
vector<int>v;
v.push_back(10);
v.push_back(30);
v.push_back(40);
v.push_back(30);
v.push_back(20);
v.push_back(10);
sort(v.begin(), v.end());//升序
for_each(v.begin(), v.end(), printf01);
sort(v.begin(), v.end(),greater<int>());//降序
for_each(v.begin(), v.end(), printf01);
}
2.random_shuffle(打乱排序)
void printf02(int val)
{
cout << val << endl;
}
void test10()
{
srand((unsigned)time(0));//随机种子
vector<int>v;
for (int i = 0;i < 10;i++)
{
v.push_back(i);
}
for_each(v.begin(), v.end(), printf02);
random_shuffle(v.begin(), v.end());
for_each(v.begin(), v.end(), printf02);
}
3.merge(合并两个升序容器为一个容器)
void printf02(int val)
{
cout << val << endl;
}
void test11()
{
vector<int>v;
vector<int>v1;
for (int i = 0;i < 10;i++)
{
v.push_back(i);
v1.push_back(i);
}
vector<int>vTarget;
vTarget.resize(v.size()+v1.size());
merge(v.begin(), v.end(), v1.begin(), v1.end(),vTarget.begin());
for_each(vTarget.begin(), vTarget.end(), printf02);
}
4.reverse(反转方法)
void printf02(int val)
{
cout << val << endl;
}
void test12()
{
vector<int>v;
for (int i = 0;i < 10;i++)
{
v.push_back(i);
}
for_each(v.begin(), v.end(), printf02);//排序前
reverse(v.begin(),v.end());
for_each(v.begin(), v.end(), printf02);//排序后
}
拷贝:
1.copy
void printf02(int val)
{
cout << val ;
}
void test13()
{
vector<int>v;
for (int i = 0;i < 10;i++)
{
v.push_back(i);
}
vector<int>v1;
v1.resize(v.size());
for_each(v.begin(), v.end(), printf02);//v
cout << endl;
copy(v.begin(), v.end(), v1.begin());
for_each(v1.begin(), v1.end(), printf02);//v1
}
2.replace
void printf02(int val)
{
cout << val ;
}
void test14()
{
vector<int>v;
v.push_back(10);
v.push_back(20);
v.push_back(40);
v.push_back(50);
v.push_back(40);
v.push_back(20);
v.push_back(10);
for_each(v.begin(), v.end(), printf02);
cout << endl;
replace(v.begin(), v.end(), 40, 90);//40替换成90
for_each(v.begin(), v.end(), printf02);
}
3.replace_if
void printf02(int val)
{
cout << val ;
}
bool Greatfive(int val)
{
return val > 5;
}
void test15()
{
vector<int>v;
for (int i = 0;i < 10;i++)
{
v.push_back(i);
}
for_each(v.begin(), v.end(), printf02);
cout << endl;
replace_if(v.begin(), v.end(), Greatfive,10);//将大于五的替换成10
for_each(v.begin(), v.end(), printf02);
}
4.swap(同种容器)
void printf02(int val)
{
cout << val ;
}
void test16()
{
vector<int>v;
v.push_back(20);
v.push_back(30);
v.push_back(20);
v.push_back(30);
v.push_back(20);
v.push_back(250);
v.push_back(20);
vector<int>v1;
for (int i = 0;i < 10;i++)
{
v1.push_back(i);
}
for_each(v.begin(), v.end(), printf02);
for_each(v1.begin(), v1.end(), printf02);
swap(v, v1);
cout << endl;
for_each(v.begin(), v.end(), printf02);
for_each(v1.begin(), v1.end(), printf02);
}