C++ stl 运用(深层)

时间:2022-05-23 11:06:38

1.multiset(set差不多)

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

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

  

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

  C++ stl 运用(深层)

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

  C++ stl 运用(深层)

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

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

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

  C++ stl 运用(深层)

  (5)find()寻找键值

  C++ stl 运用(深层)

  没找到一律为q.end()

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

  C++ stl 运用(深层)

2,stack

  C++ stl 运用(深层)

3,vector

  (1)直接访问

  C++ stl 运用(深层)

  C++ stl 运用(深层)

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

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

  C++ stl 运用(深层)

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

  C++ stl 运用(深层)

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

  (3)定死分配空间

  C++ stl 运用(深层)

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

  (4)pop_back()

  C++ stl 运用(深层)

4,hash_map,hash_multimap,hash_set,hash_multiset

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

  谨慎使用。

  C++ stl 运用(深层)

关于遍历

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

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

  C++ stl 运用(深层)

  pair中

  C++ stl 运用(深层)