C++之 lower_bound And upper_bound And insert
2017-10-11 11:24
393 查看
1. 代码
#include <set> #include <iostream> int main() { std::set<int> c = {1, 2, 3, 4, 5, 6, 7, 8, 9}; auto item = c.lower_bound(4); for(; item != c.end(); item++ ){ std::cout << *item << " "; } std::cout<<"\n"; auto boolen = c.insert(10).second; std::cout << *(c.insert(10).first) << " : " << boolen << std::endl; std::cout<< *item<< std::endl; item = c.upper_bound(5); for(; item != c.end(); item++ ){ std::cout << *item << " "; } std::cout<<"\n"; // erase all odd numbers from c for(auto it = c.begin(); it != c.end(); ) if(*it % 2 == 1) it = c.erase(it); else ++it; for(int n : c) std::cout << n << ' '; } 运行结果: 4 5 6 7 8 9 10 : 1 6 7 8 9 10 2 4 6 8 10
2.结论
lower_bound : 返回第一个不小于该值的迭代器,迭代器向后移动,值越来越大。upper_bound : 返回第一个大于该值的迭代器,迭代器向后移动,值越来越大。
std::pair<iterator,bool> insert( const value_type& value );
std::pair<iterator,bool> insert( value_type&& value );
插入元素返回一个对组,ret.first 为指向该元素的迭代器; ret.second为指向该元素的标识:标识是否插入成功。
相关文章推荐
- C++ STL 之 lower_bound and upper_bound
- C++ STL 之 lower_bound and upper_bound
- C++ STL 之 lower_bound and upper_bound
- c++ 对于upper_bound以及lower_bound的说明
- [C++] upper_bound和lower_bound
- C/C++-STL中lower_bound与upper_bound的用法
- C++ STL 算法:查找算法(7) lower_bound、upper_bound、equal_range
- lower_bound and upper_bound
- C++-upper_bound和lower_bound函数坑点总结
- LeetCode:Search Insert Position,Search for a Range (二分查找,lower_bound,upper_bound)
- C++ STL lower_bound & upper_bound
- C++中的lower_bound()与upper_bound()
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- C++ STL中的 lower_bound() 和 upper_bound()
- C++ 函数lower_bound & upper_bound
- C++的STL进一步总结之lower_bound和upper_bound
- C++的快排与upper_bound()和lower_bound()
- STL 源码分析《5》---- lower_bound and upper_bound 详解
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- C++ STL 二分查找函数(lower_bound 和 upper_bound)