#include <iostream>
#include <vector>
#include<deque>
#include<stack>
#include<set>
#include<time.h>
#include<string>
#include<algorithm>
#include<numeric>
#include<ostream>
using namespace std;
void createvector(vector<int>&vec);
void showvector(vector<int>vec);
bool graeat(int num);
void maxv(vector<int>v);
void remove_ifs(vector<int>v3);
void stable_partitions(vector<int>v);
void partitions(vector<int>v2);
void main()
{
srand(time(0));
vector<int>v,v2,v3;
createvector(v);
createvector(v2);
createvector(v3);
cout << "v:" << ends;
showvector(v);
cout << endl;
cout << "v2:" << ends;
showvector(v2);
cout << endl;
cout << "v3:" << ends;
showvector(v3);
cout << endl;
cout << "*(v.begin()+1):" << *(v.begin() + 1) << endl;
cout << endl;
cout << "*(v.maxs()-1):" << *(v.end() - 1) << endl;
maxv(v);
cout << endl;
remove_ifs(v3);
stable_partitions(v);
partitions(v2);
}
bool graeat(int num)
{
if (num <= 55)
{
return true;
}
else
{
return false;
}
};
void maxv(vector<int>v)
{
int maxs = max(*(v.begin() + 1), *(v.end() - 1));
cout << "v.maxs:" << maxs << endl;
}
void remove_ifs(vector<int>v3)
{
cout << "v3.remove_if:" << endl;
v3.erase(remove_if(v3.begin(), v3.end(), graeat), v3.end());
showvector(v3);
cout << endl;
}
void stable_partitions(vector<int>v)
{
v.erase(stable_partition(v.begin(), v.end(), graeat), v.end());//切割并保持排序
cout << "v.stable_partition:" << endl;
showvector(v);
cout << endl;
}
void partitions(vector<int>v2)
{
v2.erase(partition(v2.begin(), v2.end(), graeat), v2.end());//只切割
cout << endl;
cout << "v2.partition:" << endl;
showvector(v2);
cout << endl;
};
void createvector(vector<int>&vec)
{
for (int i = 0; i < 10; i++)
{
vec.push_back(rand()%100);
}
};
void showvector(vector<int>vec)
{
vector<int>::iterator veci;
for (veci = vec.begin();veci!=vec.end(); veci++)
{
cout << *veci << " ";
}
cout << endl;
};
C++max、remove_if、partition等算法
最新推荐文章于 2024-02-19 08:34:05 发布