zoukankan      html  css  js  c++  java
  • C++ 关联容器

     关联容器类型

      map  关联数组,保存关键字-值对

      set    关键字即值

      multtmap  关键字可重复map

      multiset  关键字可重复set

      无序容器

      unordered_map  哈希函数组织的map

      unordered_set  哈希函数组织的set

      unordered_multmap  可重复出现哈希map

      unordered_multiset  可重复出现哈希set

     map

      定义时指定关键字和值的类型,关键字在第一位,值第二位,关键字可以作为下标操作。

      当从map提取一个元素时,会获得一个pair类型的对象,pair的first成员保存的是关键字,second对象保存的是值。

      插入操作

      向map中添加元素进行insert操作,操作时元素类型时pair,创建pair时最简单的方法时参数列表使用花括号初始化。

      创建pair的函数:

      make_pair(v1,v2);  //pair类型从v1,v2的推断

      插入时insert会返回一个pair,pair的first成员是插入元素的迭代器,second成员是bool值,关键字存在时为false,关键字不存在(插入成功)时返回true。

      删除操作

      删除元素时,返回值为删除的数量,如果对multimap进行删除,则返回值可能大于1。

      删除时也可以用一个或一对迭代器来删除。

      erase(k)  //删除关键字为k的元素,返回删除元素的数量

      erase(p)  //删除迭代器p指定的元素,返回p的下一个元素

      erase(b,e)  //删除迭代器对b和e所表示的范围中的元素,返回e

      下标操作

      对map进行下标操作时,直接使用方括号[]时,如果不存在该关键字,则会创建该关键字并初始化。

      所以应使用at对map进行访问:

      c.at(k)  //访问关键字为k的元素

      访问元素

      find(k)  //查找第一个关键字为k的元素,若不存在返回尾后迭代器

      count(k)  //计算关键字k的数量

      lower_bound(k)  //返回第一个不小于k的元素

      upper_bound(k)  //返回第一个大于k的元素

      equal_range(k)  //返回迭代器pair,first指向第一个与元素匹配的位置,second保存最后一个与元素匹配的位置,若未找到匹配元素,则两个迭代器都指向关键字可以插入的位置

     set

      set只有关键字,没有值。

      set的迭代器为const类型,即关键字不能改变。

     无序容器

      无序容器在存储上组织一组桶,使用哈希函数将元素映射到桶。

      

      不能直接使用自定义类型的无序容器。

  • 相关阅读:
    eclipse实现热部署和热启动
    java.sql.SQLException: Incorrect string value: 'xF0x9Fx98x87<b
    Springboot 热部署中存在冲突的问题
    在执行save操作时候出现的诡异!
    富文本编辑器选择使用
    Springboot 1.5.x版本上读取自定义配置文件问题
    Springboot中静态资源和拦截器处理(踩了坑)
    表单验证——jquery validate使用说明【另一个教程】
    表单验证——jquery validate使用说明
    注册页面
  • 原文地址:https://www.cnblogs.com/wshr007/p/10471402.html
Copyright © 2011-2022 走看看