//查找算法
//关联式容器已经排序了,速度快
#include<iostream>
#include<string>
#include<set>
#include<list>
#include<algorithm>
#include<vector>
#include<functional>
using namespace std;
int main()
{
list<int> l;
for (int i = 0; i <= 9; ++i)
{
l.insert(l.end(), i);
}
for (int i = 0; i <= 9; ++i)
{
l.insert(l.end(), i);
}
for (auto iter = l.begin(); iter != l.end(); ++iter)
cout << *iter << " ";
cout << endl;
list<int>::iterator pos1;
list<int>::iterator pos2;
pos1 = find(l.begin(), l.end(), 4);
if (pos1 != l.end())
{
pos2 = find(++pos1, l.end(), 4);
}
if (pos1 != l.end() && pos2 != l.end())
{
for (auto iter = pos1; iter != pos2; ++iter)
cout << *iter << " ";
}
cout << endl;
vector<int> vec;
vector<int>::iterator pos;
for (int i = 1; i <= 9; ++i)
{
vec.push_back(i);
}
for (auto iter = vec.begin(); iter != vec.end(); ++iter)
{
cout << *iter << " ";
}
cout << endl;
pos = find_if(vec.begin(), vec.end(), bind2nd(greater<int>(), 3));//找到了大于3的数
cout << *pos << endl;
pos = find_if(vec.begin(), vec.end(), not1(bind2nd(modulus<int>(), 3)));//能够被3整除的数字
cout << *pos << endl;
//关联式容器
set<int> a;//自动排序,自动平衡的红黑树
a.insert(43);//插入数据之后,他们会自动排序
a.insert(78);
a.insert(24);
a.insert(66);
for (set<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter <<" ";
cout << endl;
auto pos3 = a.find(78);
if (pos3 !=a.end())
cout << " find ok" << endl;
else
cout << "find fail" << endl;
string s("aaabbsdhd");
auto pos5 = s.find("bsd");
if (pos5 != string::npos)
cout << "ok" << endl;
system("pause");
return 0;
}
查找算法-1
猜你喜欢
转载自blog.csdn.net/weixin_42655231/article/details/82788500
今日推荐
周排行