本文中的一些重要概念摘自C语言中文网
链接:http://c.biancheng.net/view/357.html
本节只是对关联容器的简单介绍,具体的关联容器会在之后几节再做具体介绍。
关联容器内部都是排好序的,STL中主要有以下四中关联容器:
set:排好序的集合,不允许有相同元素。
multiset:排好序的集合,允许有相同元素。
map:每个元素都分为关键字和值两部分,容器中的元素是按关键字排序的。不允许有多个元素的关键字相同。
multimap:和 map 类似,差别在于元素的关键字可以相同。
注意:不能修改set和multiset中的值,因为这两种容器不会自动重新给他们排序,这样就会导致查找出错,如果想要修改最好就是先删除这个元素,然后再插入一个新的元素。
当然,也不允许修改map和multimap中的关键字。
使用关联容器的目的在于快速查找,因为本身容器是有序的,当插入一个元素时,会和已有的元素进行比较,最后插入一个合适的位置。
除了所有容器共有的成员函数外,关联容器还具有以下成员函数:
find:查找某个值。
lower_bound:查找某个下界。
upper_bound:查找某个上界。
equal_range:同时查找上界和下界。
count:计算等于某个值的元素个数。
insert:插人一个元素或一个区间。