高放的c++学习笔记之关联容器
标准库提供8个关联容器
按关键字有序保存有(红黑树实现)
set
map
multset 关键字可重复出现的set
multimap 关键字可重复出现的map
无序保存 哈希实现
unorderred_map
unorderred_set
unorderred_multimap
unorderred_multiset
map是一个个pair类型组成
map<int, int>mp;
for(auto i : mp){
printf("%d %d\n", i.first, i.second);
}
向map中添加元素的方法除了常用的类似与数组的方式(mp[i] = x)还有如下方式
mp.insert(pair)
set能直接insert(区间),例如
multiset<int> s;
for(int i = 10; i >= 0; i--){
s.insert(i);
s.insert(i);
}
set<int> ss(s.cbegin(), s.cend());
插入元素
map具有insert功能,插入的要是一个和关键字与值相对应类型的pair;
例如map<T1, T2>那么插入的pair类型也应该是<T1, T2>类型;
map的insert返回一个pair类型,first是一个指向插入节点的迭代器,second是一个bool类型,代表是否插入成功,如果本来在map里面有key的话就插入不成功。
set与map相类似,只不过插入的不是pair而只是一个符合set容器的值;
以上只符合插入的是单点的情况,即set插入一个变量,map插入pair,对其他情况并不适用。
高放的c++学习笔记之关联容器的更多相关文章
- STL学习笔记(三) 关联容器
条款19:理解相等(equality)和等价(equivalence)的区别 相等的概念是基于 operator== 的,如果 operator== 的实现不正确,会导致并不实际相等等价关系是以&qu ...
- 高放的python学习笔记之基本语法
python与c++的不同之处 python的语句块不是用{}括起来的而是冒号后面跟一些与比当前语句多一的tab缩进的语句. 1.定义变量 python的变量类型不需要人为指出,会根据赋值的类型决定此 ...
- 高放的c++学习笔记之模板与泛型编程
函数模板 作用 有很多时候参数的类型以及返回值的类型是可变的,我们通过定义模板来让函数能更灵活的运用. 我们设计一个比较函数,如果能比较的两个参数是int型的,两个参数也可能都是string型的,单独 ...
- 高放的c++学习笔记之重载运算与类型转换
▲基本概念 (1)重载运算符是具有特殊名字的函数,它们的名字又operator和其后要定义的运算符号共同构成.. (2)对于一个运算符号来说它或者是类的成员,或者至少含有一个类类型的参数. (3)我们 ...
- 高放的c++学习笔记之类
类的基本思想是数据抽象和封装1.this 成员函数通过一个名为this的额外隐式参数来访问调用它的对象,当我们调用一个函数的时候,用请求该函数的对象的初始化this. 如果某个类的名字为sale,某个 ...
- 高放的c++学习笔记之函数基础
局部变量 函数里面的局部变量有普通的局部变量和局部静态变量两种. 普通局部变量变量就是正常定义在函数体内部的变量,如果返回局部变量的地址,以便于函数调用结束后还继续访问此变量的话,编译器会报warni ...
- 高放的c++学习笔记之lambda表达式
lambda表达式:可以让代码看起来更整洁,有些结构简单且用的次数少的函数可以用lambda表达式替代, 通常结构是这样的[捕获列表](参数列表){函数部分} 捕获列表: lambda表达式如果在一个 ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- Rancher Server HA的高可用部署实验-学习笔记
转载于https://blog.csdn.net/csdn_duomaomao/article/details/78771731 Rancher Server HA的高可用部署实验-学习笔记 一.机器 ...
随机推荐
- C# 部分关键字
关键字: virtual: 虚方法,本身可以被实例化,也可以在派生类中重写该方法: override:在派生类重写基类虚方法时声明,避免了C++中的潜在运行错误: abstract:声明为抽象类.抽 ...
- Swift互用性:与 Objective-C 的 API 交互(Swift 2.0版更新)-备
本页包含内容: 初始化 可失败初始化 访问属性 方法 id 兼容性(id Compatibility) 空值和可选值 扩展(Extensions) 闭包(Closures) 比较对象 Swift 类型 ...
- php通过curl实现bigpipe
BigPipe是facebook发明的一种页面加载技术.其实也不是什么新技术了,也有很多文章进行说明.但是在网上,具体讲如何使用php实现bigpipe的文章很少,并且有些文章还不很准确.bigpip ...
- Zend Cache的学习和实例
前一段时间,公司让我组织一下关于Zend Cache的培训. 培训的具体内容有: 前端core缓存 前端Output缓存 前端Function缓存 前端Class缓存 前端File缓存 前端Page缓 ...
- poj 2492A Bug's Life
http://poj.org/problem?id=2492 #include<cstdio> #include<cstring> #include<algorithm& ...
- 点击itemView选中checkbox
在Listview中如果item中含有checkbox会使itemview的setonitemchecklistingner失效,我们可以通过设置checkbox的clickbale的值为false来 ...
- <frameset><frame><iframe>网页框架
这几个标签都属于同一类功能,就是框架内镶功能: 1)<frameset>意为把页面分解成一定部分,让每一部分显示不同的内镶框架,如(请复制到DW尝试): <html> < ...
- perl /m
<pre name="code" class="html">[root@backoffice01 ~]# cat a1.pl my $_=" ...
- elk 发送zabbix告警
- LVS安装配置
LVS安装部署 一.LVS安装(CENTOS) 1.LVS模块ip_vs已经内置在LINUX内核中,一般情况下ip_vs并没有启动,可以通过lsmod | grep ip_vs查看,能够看到信息表示模 ...