关联容器map
key + value 的值

关联容器 = 有序容器(红黑树) + 无序容器(散列表) + hash_map

有序容器中:
map的键值是不允许重复的
multimap的键值是允许重复的
set是一个集合,键值=实值,就是只包含一个值,既是键值也是实值,不允许重复
multiset运行重复

map
底层就是红黑树(平衡排序二叉树)
键值保存,高效访问
插入效率低于链表,因为涉及排序

下面是一段插入代码,菜鸡一般是这么写的:

#include <map>
#include <iostream>
using namespace std;void MapConstruct(){map<int, char> mp;mp.insert(pair<int, char>(1, 'a'));return;
}int main(){MapConstruct();getchar();return 0;
}

局部变量结构如下:

进价一点点的写法如下代码(稍微有工作经验的人一般是这么写的)

#include <map>
#include <iostream>
using namespace std;void MapConstruct(){typedef pair<int, char> in_pair;map<int, char> mp;mp.insert(in_pair(1, 'a'));//mp.insert(pair<int, char>(1, 'a'));return;
}int main(){MapConstruct();getchar();return 0;
}

局部变量结构如下:

遍历一下:

#include <map>
#include <iostream>
#include <algorithm>
using namespace std;typedef pair<int, char> in_pair;void fun(in_pair pr){cout << pr.first << "\t" << pr.second << endl;
}void MapConstruct(){map<int, char> mp;mp.insert(in_pair(1, 'a'));mp.insert(in_pair(2, 'b'));mp.insert(in_pair(3, 'c'));mp.insert(in_pair(4, 'd'));for_each(mp.begin(), mp.end(), fun);return;
}int main(){MapConstruct();getchar();return 0;
}

运行截图如下:

然后,大佬的写法(标准写法,一般是这种写法)

不得不说,大佬和小菜的最大区别就是大佬想得比较周到:

#include <map>
#include <iostream>
#include <algorithm>
using namespace std;typedef pair<int, char> in_pair;
typedef pair<map<int, char>::iterator, bool> in_pair_bool;void judgeOk(in_pair_bool pr){if(pr.second){cout << "插入成功!" << endl;}else{cout << "插入失败!" << endl;}
}void fun(in_pair pr){cout << pr.first << "\t" << pr.second << endl;
}void MapConstruct(){map<int, char> mp;pair<map<int, char>::iterator, bool> pr;pr = mp.insert(in_pair(1, 'a'));judgeOk(pr);pr = mp.insert(in_pair(2, 'b'));judgeOk(pr);pr = mp.insert(in_pair(3, 'c'));judgeOk(pr);pr = mp.insert(in_pair(4, 'd'));judgeOk(pr);pr = mp.insert(in_pair(1, 'e'));judgeOk(pr);for_each(mp.begin(), mp.end(), fun);return;
}int main(){MapConstruct();getchar();return 0;
}

运行截图如下:

C++|STL学习笔记-对STL中关联容器map的进一步认识相关推荐

  1. STL学习笔记7 ——STL算法(一)

    文章目录 一.排序函数 1. sort() 函数 2. 使用 sort() 函数 3. 自定义数据类型 5. is_sorted() 函数 二.C++ merge()函数 三.find查找函数 1. ...

  2. C++ STL学习笔记

    C++ STL学习笔记一 为何要学习STL: 数据结构与算法是编程的核心,STL中包含各种数据结构和优秀的算法,确实值得深入学习,本文中虽然着重使用,但希望有心的朋友能多看看相关数据结构的实现,对于C ...

  3. C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍

    继续学习侯捷老师的课程! 在前面的博客<C++ STL学习笔记(2) 容器结构与分类>中介绍了STL中常用到的容器以及他们的使用方法,在我们使用容器的时候,背后需要一个东西支持对内存的使用 ...

  4. C++STL学习笔记(4) 分配器(Allocator)

    在前面的博客<C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍>中,简单的介绍了分配器再STL的容器中所担当的角色,这一节对STL六大部件之一的分配器进行详细 ...

  5. 【STL学习指南】STL的入门学习指南

    目录 STL 学习指南 一. STL基础 二. C++ STL 容器 1 序列式容器 1.1 array 1.2 vector 1.3 deque 1.4 list 2 关联式容器 2.1 map 2 ...

  6. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  7. SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用

    1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目 ...

  8. Hadoop学习笔记—11.MapReduce中的排序和分组

    Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...

  9. 【theano-windows】学习笔记十七——梯度中的consider_constant

    前言 主要是在写玻尔兹曼机相关的theano时, 在计算梯度grad的时候发现一个参数名字叫做consider_constant,来看看这个到底做了什么事情 参考博客: using consider_ ...

最新文章

  1. 定义一个DOG类(Java)
  2. 【内网渗透】利用非常规手段突破安全策略上线CS
  3. KeyError: 报错_python系列学习笔记
  4. python层级抓取_python实现提取str字符串/json中多级目录下的某个值
  5. 使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
  6. C#中的正则表达式(1)
  7. android让图片旋转
  8. c语言4 答案详解,2019考研数据结构C语言版详解答案(4)
  9. Bit,Byte,WORD,DWORD区别和联系
  10. devc 能优化吗_小网站能做seo优化吗?如何为小公司网站做seo优化?
  11. 完全背包告诉你 2020 代表什么
  12. 前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)
  13. Python函数嵌套/递归(七)-----详细
  14. 网站主题实现技术-jsp include
  15. Win10下Python3.x环境安装和配置教程
  16. 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
  17. Metal(六) 案例之视频文件的渲染
  18. @WebFilter注解拦截
  19. 亥姆霍兹线圈结构原理
  20. 转贴:精神病人笑话全集

热门文章

  1. jQuery 1.6 中更新的几个功能
  2. javascript中依赖属性(Dependency Property)的实现
  3. Jakarta Struts应用的七个经验
  4. 为提升效率,阿里取消周报制度?醒醒吧,自动化报表才是出路
  5. 给年终总结报告加分的技巧:手机上就能看的可视化长什么样?
  6. 第二波 编程资料免费领,前后端、移动端都有
  7. mysql union_Mysql union和union all用法
  8. php类和对象-作用,php 类和对象
  9. php ztree异步加载数据格式,zTree异步加载简单demo
  10. uoni扫地机器人好用吗_抖音走红的日本uoni尤利扫地机器人好吗?体验感如何?...