1、关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。
2、set和map类型的对象所包含的元素都具有不同的键,不允许为同一个键添加第二个元素。如果一个键必须对应多个实例,则需使用multimap或multiset类型。
3、两个pair对象之间的小于运算,其定义遵循字典次序:如果p1.first<p2.first或者!(p2.first<p1.first)&&p1.second<p2.second,则返回true。
4、对于map容器,value_type并非元素的类型,而是描述键及其关联类值类型的pair类型,且键为const。
5、对于键类型,唯一的约束就是必须支持<操作符,至于是否支持其它的关系或相等运算,则不做要求。
6、使用下标访问map与使用下标访问数组或vector的行为截然不同:用下标访问不存在的元素将导致在map容器中添加一个新的元素,它的键即为该下标值。
7、map下标操作符返回一个mapped_type类型的值。
8、对于map对象,count成员的返回值只能是0或1。
9、set容器只是单纯的键的集合,当只想知道一个值是否存在时,使用set容器是最合适的。
10、set不支持下标操作符,而且没有定义mapped_type类型。在set容器中,value_type不是pair类型,而是与key_type相同的类型。与map一样,set容器存储的键也必须唯一,而且不能修改。
11、set容器与map容器的操作一样,带有一个键参数的insert版本返回pair类型对象,包含一个迭代器和一个bool值,迭代器指向拥有该键的元素,而bool值表明是否添加了元素。
12、不能对multimap对象使用下标操作,因为在这类容器中,某个键可能对应多个值。
13、multimap对象带有一个键参数的erase版本将删除拥有该键的所有元素,并返回删除元素的个数。
14、在multimap中,同一个键所关联的元素必然相邻存放。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。