STL的常用算法:
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<functional>
#include<ctime>
void print(vector<int>& v)
{
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << endl;
}
}
class Greater
{
public:
bool operator()(int a)
{
return a > 5;//假设是自定义的数据类型,可以改变参数,这里改变return的返回值
}
};
//重载==,自定义数据类型,count算法的灵活使用
class Person
{
public:
string M_name;
int M_age;
Person(string name,int age)
{
this->M_name = name;
this->M_age = age;
}
bool operator==(const Person&p)//必需加上const,底层代码要求,防止修改
{
if (this->M_age == p.M_age)
{
return true;
}
else
{
return false;
}
}
};
class Compare
{
public:
void operator()(int result)
{
cout << result << " ";
}
};
class Clone
{
public:
int operator()(int a)
{
return a;
}
};
void test1()
{
vector<int>v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
vector<int>::iterator it = find(v.begin(),v.end(),5);//find算法,找到了就返回该迭代器,没有找到就返回结束迭代器,第一和第二是区间,用迭代器表示,最后一个参数为想找的元素
if