#include<iostream>
#include<vector>
#include<algorithm>
#include<list>
//已序区间的查找算法
using namespace std;
int main()
{
list<int> ilist;
for (int i = 1; i <= 9; ++i)
ilist.insert(ilist.end(), i);
for (int i = 1; i <= 9; i++)
ilist.insert(ilist.end(), i);
ilist.sort();//排序
for (auto iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
auto pos1 = lower_bound(ilist.begin(), ilist.end(), 5);//查找第一个5的位置
cout << "first 5:" << distance(ilist.begin(),pos1)+1<< endl;
auto pos2 = upper_bound(ilist.begin(), ilist.end(), 5);//查找最后一个5的位置
cout << "大于5的用第一个位置:" << distance(ilist.begin(), pos2)+1<< endl;
//distance第一个距离是0,第二个距离是1
ilist.insert(lower_bound(ilist.begin(), ilist.end(), 5),5);
ilist.insert(upper_bound(ilist.begin(), ilist.end(), 5), 5);//5de houbian
for (auto iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
//equal返回结果包括两个
//pair是一对
pair<list<int>::iterator,list<int>::iterator > range;//lower+upper
range = equal_range(ilist.begin(), ilist.end(), 5);
cout << distance(ilist.begin(), range.first) +1<< endl;
cout << distance(ilist.begin(), range.second) +1<< endl;
system("pause");
return 0;
}
查找-7
猜你喜欢
转载自blog.csdn.net/weixin_42655231/article/details/82807292
今日推荐
周排行