• map/multimap_01


    标准的关联式容器

    键值对序列

    基于key的快速检索能力

    key按序排列,按序插入

    红黑树变体的平衡二叉树

    对key来说支持 mapT[key] 和 mapT.at(key)

    multimap 不支持 multimapT[key] 和 multimapT.at(key)

    A、头尾 添加/移除

    B、随机存取

    C、数据存取

    1、构造函数

      1.1、默认构造函数 ==> 无参构造函数

      1.2、必定需要 复制构造函数 :map<T1,T2> mapTT(const map<T1,T2>& mapTT02);

    2、赋值

      2.1、重载"="操作符

          map& = const map& map1;

    3、迭代器操作

      3.1、const_iterator map<T>::begin();  // 第1个

      3.2、const_iterator map<T>::end();  // 最后1个

      3.3、const_reverse_iterator map<T>::rbegin();  // 倒数第1个

      3.4、const_reverse_iterator map<T>::rend();  // 倒数最后1个

    4、插入

      4.1、std::pair<map<T1,T2>::iterator, bool> pairA = map::insert(pair<T1,T2>(key, value));

      4.2、std::pair<map<T1,T2>::iterator, bool> pairB = map::insert(map<T1,T2>::value_type(key, value));

      4.3、mapTT[key1] = value1;  性能问题

        先查找有无主键为 key1的项

         --> 无

           --> 新建 主键为key1 值为value1 的项  初始化值的对组,插入map中

         --> 有

           --> 原来的 mapTT[key1] ,将值改为 value1

    5、删除

      void map::clear();
      iterator map::erase(const_iterator beg, const_iterator end); // [beg, end)区间,返回下一个元素的位置
      iterator map::erase(const_iterator pos);           // 返回下一个元素的位置

      size_type map::erase(key_type keyElem);  // 删除 容器中 key为keyElem的对组。返回的是删掉的个数?

    6、交换

      void map<T>::swap(map<T>&);

    7、大小

      size_type map<T>::size();
      bool map<T>::empty();

    8、查找

      iterator map::find(key);  // 查找key是否存在。存在:返回元素迭代器;不存在:返回map::end() 

      size_type map::count(key_type keyElem);  // 返回容器中key为keyElem的对组个数

      iterator map::lower_bound(key_type keyElem);  // 返回第一个key>=keyElem元素的迭代器

      iterator map::upper_bound(key_type keyElem);  // 返回第一个key>keyElem元素的迭代器

      std::pair<map<T1,T2>::iterator, map<T1,T2>::iterator> pair01 = mapTT.equal_range(key_type keyElem); // 返回容器中 key为keyElem的区间。上限是闭区间,下限是开区间。如[beg, end)

  • 相关阅读:
    般若与慈悲
    四谛
    Mysql:8.0.19:新特性、过期、已经删除的
    Mysql:As of 8.0.16:--validate-config:新增的服务器配置验证特效:good!
    Mysql:FIPS:Federal Information Processing Standards 140-2:世上有不透风的墙么?!
    ASP.NET Core WebApi使用Swagger生成API说明文档【xml注释版】
    ASP.NET Core WebApi使用Swagger生成API说明文档【特性版】
    Idea导入Eclipse的Web项目并部署到Tomcat
    在.Net中使用RedLock实现分布式锁
    【转】在C#中使用Json.Net进行序列化和反序列化及定制化
  • 原文地址:https://www.cnblogs.com/cppskill/p/5412345.html
Copyright © 2020-2023  润新知