首页 > STL编程 > STL bound 搜索插入位置

STL bound 搜索插入位置

在STL中,有lower_bound()和upper_bound()两个函数,前者用于查找区间中第一个大于或者等于value的元素所在的位置,而这返回第一个大于value的元素所在的位置。下面看一个例子:

C++语言: Codee#14076
//Coded by 代码疯子
//www.programlife.net
//在“代码发芽网”获取的高亮HTML效果
//www.fayaa.com
#include <iostream>
#include <list>
#include <iterator>
#include <algorithm>
using namespace std;

int main()
{
    list<int> coll;
   
    for(int i = 1; i <= 9; ++i)
    {
        coll.push_back(i);
        coll.push_back(10 - i);
    }
   
    coll.sort();
   
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
   
    list<int>::iterator pos1, pos2;
    pos1 = lower_bound(coll.begin(), coll.end(), 5);
    pos2 = upper_bound(coll.begin(), coll.end(), 5);
   
    cout << "5 could get position "
         << distance(coll.begin(), pos1) + 1
         << " up to "
         << distance(coll.begin(), pos2) + 1
         << " without breaking the sorting" << endl;
        
    coll.insert(lower_bound(coll.begin(), coll.end(), 3), 3);
    coll.insert(upper_bound(coll.begin(), coll.end(), 7), 7);

    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
   
    return 0;
}


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> STL bound 搜索插入位置
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: STL编程 标签: , ,