STL各类容器的API

所有关联容器头提供一个insert,用以插入元素(键值对)
set于multiset都支持双向迭代器。 


 
Set:
所有的关联容器关心的是健值对。
set中的元素是键值对。只不过键和值相等而已。
插入删除元素时,set中的元素会按键进行排序。


默认按键的升序排列,less<T>  (即operator< 表示前比后小)
降序序列,greater<T>   (即operator> 标识前比后大) 


 
Set<Key> API
集合也看成关联容器,其键、值相等。关键字按比较器类型排序(默认升序,less<T>) 
set<Key_type>  multiset<key_type>的接口大致相同。不同的是多值集合允许关键字重复


SET API 
set的构造函数:
set<Key_type>()    ;   生成一个空集 
set<key_type>(a,b) ;   用迭代子区间[a,b)去初始化 


增加元素:
.insert(key)   ;把key标识的元素插入集合(不允许插入重复值) 
.insert(set<T>::iterator pos,const T&key);   把key插入pos迭代器
引用的位置之前。这个pos只起到提示的作用,真正插在什么位置。由
容器处理元素的顺序和key本身决定。


 


删除元素:
int   .erase(key);     删除key指定的元素,并返回实际删除的key的个数 
.erase(迭代子位置pos)   迭代子位置不允许使用:it+n类似的求值 


查找元素:
.find(key)
按关键字查找,返回元素位置(迭代子) 


计数:
.count(key)
返回key元素的个数。set要么是0,要么是1
multiset返回非负数。 


multiset:
和set类似,只不过其允许重复的关键字代表的元素。




支持insert接口?
所有的STL容器都有至少一个insert版本






 

你可能感兴趣的:(STL各类容器的API)