从零开始的C++(十七)
map/set
功能:能对插入的数据自动排序,遍历时呈现有序。其底层是红黑树,遍历是中序遍历的方式。
set:
特点:
1、set是按照一定次序存储数据的容器。
2、set的元素value,是用于排序比较的元素。且value一旦输入不可修改。
3、set默认是升序排序。
4、set底层是红黑树
5、set对于插入value相同的元素,不会再次插入。即一个set对象中所有元素的值均不同(可以去重)。若希望有重复的值,可以使用multiset。
6、查找一个元素的时间复杂度是Ologn。
set常用函数:
1、插入(insert):返回的是一个pair<iterator,bool>的对象,其中插入成功bool是true,反之是false。iterator插入成功指向新插入的元素,失败说明对象中已经有同值的元素,指向那个元素。
2.删除(erase):返回类型是void,功能是删除输入值对于的元素。
3.查找(find):查找成功返回指向元素的迭代器,失败返回end()。
4.求输入值的元素个数(count):返回同值的元素的个数,一般用于multiset中。
map:
特点:
1.map的元素是一个建对,pair<key,value>
2、map通过key进行插入时的排序,key一旦输入不能修改。
3、不能插入相同key值的元素,哪怕value值不同也不行
4、map支持下标访问,下标是key的值,返回的是对于元素的value。若查找不到下标直接抛异常
5、map的底层是红黑树