C++ STL容器 —— map/multimap 用法详解
写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理。但别人的博客终究是别人的, 最好自己上手操作一下.
写的不好, 请大神手下留情.
下面说的 “运行之后” 表示: 运行上个语句之后的结果.
一行如果说的太长的话, 就得拖动下面的进度条才能看到后面的内容, 非常麻烦
因此将一段话分成了多行, 就像现在这种形式
目录
简介
头文件: # include < map >
容器的每个元素类型为 pair, 将 pair 的第一部分作为 键(key), 第二部分作为 值(value), key 具有容器set的特点: 有序性, 每个 key 都有一个 value 对应, 而 value没有什么限制
会根据特定的排序标准,自动将元素进行排序。容器内的元素一直是有序的. 默认使用升序排序.
map和multimap的区别
map: 容器中 key 只能存在一个, 支持随机访问
multimap: 容器 key 可以存在多个, 不支持随机访问
其他用法都相同.
点击前往: pair 用法详解
点击前往: set/multiset 用法详解
构造函数
map <int, string> m, m1;
//定义 [int,string] 类型的map容器
multimap <int, string> mm, mm1;
//定义 [int,string] 类型的multimap容器
map <char, int> mchi;
//定义 [char,int] 类型的容器
map <string, int> mstri;
//定义 [string,int] 类型的容器
map <int, string> m3{
{
1,"aaa"}, {
2,"bbb"},{
3,"ccc"} };
//赋值
map <int, string> m4 = {
{
1,"aaa"}, {
2,"bbb"},{
3,"ccc"} };
//同上
map <int, string> m5(m);
//定义新容器, 拷贝 m 所有的元素
map <int, string> m6(m.begin(), m.end(