本文主要是介绍C++ STL 算法:查找算法(7) lower_bound、upper_bound、equal_range,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、lower_bound()
pos1 = lower_bound(ilist.begin(), ilist.end(), 5);
cout << "第一个5的位置: " << distance(ilist.begin(),pos1) + 1 << endl;
2、upper_bound()
pos2 = upper_bound(ilist.begin(), ilist.end(), 5);
cout << "大于5的第一个位置: " << distance(ilist.begin(),pos2) + 1 << endl;
3、equal_range()
pair<list<int>::iterator,list<int>::iterator> range;
range = equal_range(ilist.begin(),ilist.end(),5);
cout << distance(ilist.begin(),range.first)+1 << endl;
cout << distance(ilist.begin(),range.second)+1 << endl;
range = equal_range(ilist.begin(),ilist.end(),5);
cout << distance(ilist.begin(),range.first)+1 << endl;
cout << distance(ilist.begin(),range.second)+1 << endl;
4、关联式容器有等效的成员函数,性能更佳
multiset<int> imset;
//插入数据
imset.lower_bound(5);
imset.upper_bound(5);
imset.equal_range(5);
//插入数据
imset.lower_bound(5);
imset.upper_bound(5);
imset.equal_range(5);
这篇关于C++ STL 算法:查找算法(7) lower_bound、upper_bound、equal_range的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!