zoukankan      html  css  js  c++  java
  • (C/C++学习)29.STL之map(multimap)容器

    说明:map 的所有元素都会根据元素的键值自动排序。map 所有的元素都是 pair,同时拥有实值和键值,pair 的第一元素被视为键值,第二元素被视为实值,map 不允许两个元素有相同的键值。不可以通过 map 的迭代器改变 map 的键值,因为 map 的键值关系到 map 元素的排列规则,任意改变 map 键值将会严重破坏 map 组织。如果想要修改元素的实值,那么是可以的。

    提示:multimap 和 map 的操作类似,唯一区别 multimap 键值可重复。

    了解:map 和 multimap 都是以红黑树为底层实现机制。

    1.构造函数

    1 map<T1, T2> mapTT;//map 默认构造函数: 
    2 map(const map &mp);//拷贝构造函数

    2.赋值操作

    1 map& operator=(const map &mp);//重载等号操作符
    2 swap(mp);//交换两个集合容器

    3.大小操作

    1 size();//返回容器中元素的数目
    2 empty();//判断容器是否为空

    4.插入操作

    1 map.insert(...); //往容器插入元素,返回 pair<iterator,bool>
    2 map<int, string> mapStu;
    3 mapStu.insert(pair<int, string>(3, "小张")); //第一种 通过 pair 的方式插入对象
    4 mapStu.inset(make_pair(-1, "校长")); // 第二种 通过 pair 的方式插入对象
    5 mapStu.insert(map<int, string>::value_type(1, "小李")); // 第三种 通过 value_type 的方式插入对象
    6 mapStu[3] = "小刘"; // 第四种 通过数组的方式插入值
    7 mapStu[5] = "小王";

    5.删除操作

    1 clear();//删除所有元素
    2 erase(pos);//删除 pos 迭代器所指的元素,返回下一个元素的迭代器
    3 erase(beg,end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器
    4 erase(keyElem);//删除容器中 key 为 keyElem 的对组。

    6.查找操作

    1 find(key);//查找键 key 是否存在,若存在,返回该键的元素的迭代器;若不存在,返回 map.end();
    2 count(keyElem);//返回容器中key为 keyElem 的对组个数
    3 lower_bound(keyElem);//返回第一个 key>=keyElem 元素的迭代器
    4 upper_bound(keyElem);//返回第一个 key>keyElem 元素的迭代器
    5 equal_range(keyElem);//返回容器中 key 与 keyElem 相等的上下限的两个迭代器
  • 相关阅读:
    表格行内编辑增删改查
    rpc远程调用开发
    gdb调试程序
    Makefile文件编写
    CentOS6.6源码编译升级GCC至4.8.2
    linux 下C语言编程库文件处理与Makefile编写
    laravel队列-让守护进程处理耗时任务
    回顾javase点滴
    服务端生成word并压缩打包下载
    pytest框架插件(用例依赖、多重校验、执行顺序、失败重跑、重复执行、标记)
  • 原文地址:https://www.cnblogs.com/tuihou/p/12419298.html
Copyright © 2011-2022 走看看