• 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)

  • 相关阅读:
    【Python入门自学笔记专辑】——面向对象编程-实例方法11.3.6
    最简单的轮播广告(原生JS)
    (转)JavaScript一:为什么学习JavaScript?
    JAVASCRIPT中经典面试题
    使用AngularJS实现简单:全选和取消全选功能
    canvas绘制经典折线图(一)
    前端总结
    PHP如何连接MySQL数据库
    PHP预定义变量
    PHP语法
  • 原文地址:https://www.cnblogs.com/cppskill/p/5412345.html
Copyright © 2020-2023  润新知