C++ stl 运用(深层)

1.multiset(set差不多)

  (1)erase删除,删除指针和键值是不同的。

  键值的话是删除所有,指针的话是那个位置的值

  

  (2)统计单个键值个数。

  

 

  (3)对于q.begin(),q.end()

  

  很显然,得出q.begin()和q.end()都有值

  q.begin()值为第一个元素,q.end()是当前的个数。

  (4)返回最大可以放的键值,max_size()

  

  (5)find()寻找键值

  

  没找到一律为q.end()

  (6)swap() 交换两个set,O(1)交换

  

2,stack

  

3,vector

  (1)直接访问

  

  

  发现,只有合法位置才有确定的值,其它位置最好不要越界,避免错误,可以放个哨兵,在最后。

  (2)最大可以分配空间,现在大小,现在分配空间

  

  (3)这里vector的删除,无法删除键值,只能删除指针。

  

  size变小,但是发现最后一位那个值没改。

  (3)定死分配空间

  

  这个类似开数组,没什么用,不如直接开数组

  (4)pop_back()

  

4,hash_map,hash_multimap,hash_set,hash_multiset

  这几个容器相较与其它,关键在于查询速度变快,并且不是按关键子排序的,所以

  谨慎使用。

  

关于遍历

  只需要用一种结构,如map<int,int> 后 ::iterator 这个就是一个指针。

  map中,pair中如 it为指针,用->first ->second来指向。

  

  pair中

  

 

posted @ 2017-11-03 20:56  Kaiser-  阅读(361)  评论(0)    收藏  举报