高放的c++学习笔记之关联容器

标准库提供8个关联容器

按关键字有序保存有(红黑树实现)

set

map

multset            关键字可重复出现的set

multimap            关键字可重复出现的map

无序保存           哈希实现

unorderred_map

unorderred_set

unorderred_multimap

unorderred_multiset

map是一个个pair类型组成

  map<int, int>mp;
  for(auto i : mp){

    printf("%d %d\n", i.first, i.second);
  }

向map中添加元素的方法除了常用的类似与数组的方式(mp[i] = x)还有如下方式

mp.insert(pair)

set能直接insert(区间),例如

multiset<int> s;
for(int i = 10; i >= 0; i--){
  s.insert(i);
  s.insert(i);
}
set<int> ss(s.cbegin(), s.cend());

 

插入元素

map具有insert功能,插入的要是一个和关键字与值相对应类型的pair;

例如map<T1, T2>那么插入的pair类型也应该是<T1, T2>类型;

map的insert返回一个pair类型,first是一个指向插入节点的迭代器,second是一个bool类型,代表是否插入成功,如果本来在map里面有key的话就插入不成功。

set与map相类似,只不过插入的不是pair而只是一个符合set容器的值;

以上只符合插入的是单点的情况,即set插入一个变量,map插入pair,对其他情况并不适用。

posted @ 2015-10-28 23:01  icodefive  阅读(149)  评论(0编辑  收藏  举报