zoukankan      html  css  js  c++  java
  • 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中

      

  • 相关阅读:
    latex之图表位置控制
    iPhone应用程序的启动过程
    zend server mac 下配置
    外键约束
    yii2中的资源....
    Composer fails to download http json files on "update", not a network issue, https fine
    UIResponder
    UIApplication深入学习
    UISCREEN 和支持高分辨率的显示屏
    IOS7 隐藏状态栏 (电池栏)
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/7780453.html
Copyright © 2011-2022 走看看