C++|STL学习笔记-对STL中关联容器map的进一步认识
关联容器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的进一步认识相关推荐
- STL学习笔记7 ——STL算法(一)
文章目录 一.排序函数 1. sort() 函数 2. 使用 sort() 函数 3. 自定义数据类型 5. is_sorted() 函数 二.C++ merge()函数 三.find查找函数 1. ...
- C++ STL学习笔记
C++ STL学习笔记一 为何要学习STL: 数据结构与算法是编程的核心,STL中包含各种数据结构和优秀的算法,确实值得深入学习,本文中虽然着重使用,但希望有心的朋友能多看看相关数据结构的实现,对于C ...
- C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍
继续学习侯捷老师的课程! 在前面的博客<C++ STL学习笔记(2) 容器结构与分类>中介绍了STL中常用到的容器以及他们的使用方法,在我们使用容器的时候,背后需要一个东西支持对内存的使用 ...
- C++STL学习笔记(4) 分配器(Allocator)
在前面的博客<C++ STL学习笔记(3) 分配器Allocator,OOP, GP简单介绍>中,简单的介绍了分配器再STL的容器中所担当的角色,这一节对STL六大部件之一的分配器进行详细 ...
- 【STL学习指南】STL的入门学习指南
目录 STL 学习指南 一. STL基础 二. C++ STL 容器 1 序列式容器 1.1 array 1.2 vector 1.3 deque 1.4 list 2 关联式容器 2.1 map 2 ...
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用
1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目 ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...
- 【theano-windows】学习笔记十七——梯度中的consider_constant
前言 主要是在写玻尔兹曼机相关的theano时, 在计算梯度grad的时候发现一个参数名字叫做consider_constant,来看看这个到底做了什么事情 参考博客: using consider_ ...
最新文章
- 定义一个DOG类(Java)
- 【内网渗透】利用非常规手段突破安全策略上线CS
- KeyError: 报错_python系列学习笔记
- python层级抓取_python实现提取str字符串/json中多级目录下的某个值
- 使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
- C#中的正则表达式(1)
- android让图片旋转
- c语言4 答案详解,2019考研数据结构C语言版详解答案(4)
- Bit,Byte,WORD,DWORD区别和联系
- devc 能优化吗_小网站能做seo优化吗?如何为小公司网站做seo优化?
- 完全背包告诉你 2020 代表什么
- 前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)
- Python函数嵌套/递归(七)-----详细
- 网站主题实现技术-jsp include
- Win10下Python3.x环境安装和配置教程
- 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
- Metal(六) 案例之视频文件的渲染
- @WebFilter注解拦截
- 亥姆霍兹线圈结构原理
- 转贴:精神病人笑话全集
热门文章
- jQuery 1.6 中更新的几个功能
- javascript中依赖属性(Dependency Property)的实现
- Jakarta Struts应用的七个经验
- 为提升效率,阿里取消周报制度?醒醒吧,自动化报表才是出路
- 给年终总结报告加分的技巧:手机上就能看的可视化长什么样?
- 第二波 编程资料免费领,前后端、移动端都有
- mysql union_Mysql union和union all用法
- php类和对象-作用,php 类和对象
- php ztree异步加载数据格式,zTree异步加载简单demo
- uoni扫地机器人好用吗_抖音走红的日本uoni尤利扫地机器人好吗?体验感如何?...