set容器的一些用法
来源:互联网 发布:怎样成为一个网络写手 编辑:程序博客网 时间:2024/05/20 06:51
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。构造set集合主要目的是为了快速检索,不可直接去修改键值。
常用操作
1.元素插入:insert()
2.中序遍历:类似vector遍历(用迭代器)
3.反向遍历:利用反向迭代器reverse_iterator。
set<int> s;......set<int>::reverse_iterator rit;for(rit=s.rbegin();rit!=s.rend();rit++)
4.元素删除:与插入一样,可以高效的删除,并自动调整使红黑树平衡。
set<int> s;s.erase(2); //删除键值为2的元素s.clear();
5.元素检索:find(),若找到,返回该键值迭代器的位置,否则,返回最后一个元素后面一个位置。
set<int> s;set<int>::iterator it;it=s.find(5); //查找键值为5的元素if(it!=s.end()) //找到 cout<<*it<<endl;else //未找到 cout<<"未找到";
6.自定义比较函数
struct myComp{ bool operator()(const your_type &a,const your_type &b) { return a.data-b.data>0; }}set<int,myComp>s;......set<int,myComp>::iterator it;
7、如果元素是结构体,可以直接将比较函数写在结构体内
struct Info { string name; float score; //重载“<”操作符,自定义排序规则 bool operator < (const Info &a) const { //按score从大到小排列 return a.score<score; } }set<Info> s;......set<Info>::iterator it;
阅读全文
0 0
- set容器的一些用法
- set容器的用法
- set容器的用法
- C++---set容器的用法
- Set容器使用指针的一些问题
- C++ set的一些用法
- C++ set的一些用法
- C++ set的一些用法
- 容器的一些简单用法
- C++ set和multiset容器的用法
- STL中的set容器的用法
- c++中容器set的用法整理
- 有关STL中的set容器的用法
- STL之Set:Set容器的一些总结
- set集合容器用法
- set集合容器用法
- set容器用法
- C++ set容器用法
- django redis缓存
- UVA 1279
- 第八天(php循环与数组)
- 《推荐系统实践》要点思维导图
- IaaS、PaaS、SaaS区别举例
- set容器的一些用法
- C语言输出最大值最小值
- 服务注册与发现以及Zookeeper的引入
- Java知识---awt--布局
- 29-类中的函数重载
- [spark] Task成功执行的结果处理
- 21. yii 2 library
- WSWP(用 python写爬虫) 笔记三:为爬虫添加缓存网页内容功能
- Java JFrame隐藏标题栏以及最大化最小化关闭和拖动