关联容器的基本操作简单总结
来源:互联网 发布:linux rm -rf笑话 编辑:程序博客网 时间:2024/06/06 01:08
C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。
这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。
set&multiset
一,构建
s_val.size();元素的个数。
四,查找
map&&multimap
一,map构造方法:
这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。
set&multiset
一,构建
set<int>s_val;二,插入
s_val.insert(val);返回值:pair<set<int>::iterator,bool>;bool标志是否成功,前一个表示插入位置。若里面已经有此元素,则返回原元素的位置。三,大小
s_val.size();元素的个数。
四,查找
count(val): 返回容器中值等于val的元素数目。find(val): 返回容器中值等于val的第一个元素的iterator位置;如果没有匹配元素,则返回end()位置。lower_bound(val): 返回容器中第一个值大于或等于val的元素的iterator位置。upper_bound(val): 返回容器中第一个值大于val的元素的iterator位置。equal_range(val): 返回容器中值等于val的所有元素的范围[beg, end)组成的pair<beg, end>五,判空&清空
s_val.clear()清空s_val.empty()判空六,删除
s_val.erase(val):删除容器中所有值为val的元素,返回删除元素的数目s_val.erase(pos):删除位置为pos的元素。没有返回值。s_val.erase(begin,end):删除范围内的所有元素。七,遍历
set<int>::iterator iter;iter=s_val.begin()第一个元素。s_val.end()最后一个元素的下一个元素,set<int>::reverse_iterator riterl;riter=s_val.rbegin();最后一个元素。s_val.rend(); 第一个元素的前一个元素。
map&&multimap
一,map构造方法:
map<int,string>map_ins;二,map的插入:
1,insert()返回值:pair<set<int>::iterator,bool>;bool标志是否成功,前一个表示插入位置。若里面已经有此元素,则返回原元素的位置。pair<int,string>p(v1,v2);map_ins.insert(p);while(){map_ins.insert(make_pair(v1,v2));}2,map_ins.inser(map<int,string>::value_type(v1,v2))3,map_ins[1]="fdaslj";三,map的大小
int nsize=map_ins.size();四,数据的查找
1,用count函数来判定关键字是否出现,其缺点是无法定位数据位置,只有0和12,用find(第一个val)函数,如果有要找的数据则返回其元素的位置,否则返回end。3,lower_bound(val),第一个返回容器中第一个key值大于或者小于val的元素的位置 upper_bound(val)返回第一个key值大于val的元素的iterator的位置4,equel_range(val):返回容器中等于val的所有元素的范围[beg, end)组成的pair<beg, end>;五,数据的清空和判空;
clear()清空,empty()判空。六,数据的删除
map_ins.erase(val):删除容器中所有key值为val的元素,成功返回删除元素的数目,否则0;map_ins.erase(pos):删除位置为pos的元素。没有返回值。map_ins.erase(begin,end):删除范围内的所有元素。七,数据的遍历
map<int,string>::interator iter;for(iter=map_ins.begin();iter!=map_ins.end();iter++) iter->second;或者从后往前:map<int,string>::reverse_interator riter;rter.rbegin,容器中的最后一个元素。rter.end,容器中的第一个元素的前一个元素。
- 关联容器的基本操作简单总结
- 关联容器的基本操作简单总结
- 关联容器的操作
- Docker 使用方法总结之:容器的基本操作
- C++容器:容器的基本操作
- 顺序容器的基本操作
- 顺序容器的基本操作
- map容器的基本操作
- 11.3关联容器操作
- 关联容器总结
- C++ 关联容器总结
- c++关联容器总结
- 顺序容器vector 与 关联容器map的总结
- map容器的简单操作
- java 容器的简单总结
- 简单的基本操作
- C++ Primer : 第十一章 : 关联容器之关联容器的迭代器和操作
- vector向量容器的一些基本操作
- WFA程序C#窗体间传值
- DisplayHardware
- 黑马程序员__static、main函数、类的初始化过程和单例设计模式
- jquery.fn.extend与jquery.extend
- 十个JDBC的最佳实践
- 关联容器的基本操作简单总结
- Linux下FTP(vsftpd)的配置
- Oracle function 集
- 研磨struts2————————读书笔记(一)
- 开发笔记5-Graphics学习
- Oracle 游标使用全解
- oracle视图索引操作
- 分布式搜索elasticsearch java API 之 highlighting (对搜索结果的高亮显示)
- Oracle SQL性能优化