STL关联容器总结
有序的都不带unordered,即如下:
set multiset map multimap
其中带multi的表示关键字可以重复
无序的带unordered,如下:
unordered_map
unordered_set
unordered_multimap
unordered_multiset
map系有KEY和VALUE,set系只有KEY没有VALUE
4个有序容器的KEY必须重载<号,不然无法比较,内部实现为红黑树
4个无序容器的KEY必须重载==号和HASH函数,内部实现为哈希表
所有8个关联容器都有迭代器begin()、end()
set系的迭代器不能更改KEY,map的迭代器也不能改KEY,但可以改VALUE
map:
key_type:KEY类型
mapped_type:VALUE类型
values_type:pair类型【pair(key,value)类型】
set:
key_type和value_type类型是一样的,没有mapped_type类型
插入元素:
.insert()
.emplace()
map[x]=y;
删除元素:
.erase(VAL) 删除所有值为VAL的项,返回删除的元素个数
.erase(p) 删除p迭代器 返回p后面一个迭代器
.erase(b,e) 删除迭代器b到e的元素(不含e)返回e
查找元素:
非multi(单关键字):
.find(VAL) 返回迭代器,找不到返回.end()
.count(VAL) 返回出现次数
multi(多关键字):
.find(VAL)返回第一个找到的迭代器
有序容器:
.lower_bound(K) 返回第一个KEY不小于K的迭代器
.upper_bound(K) 返回第一个KEY大于K的迭代器
无序容器只能用下面的这个(因为lower,upper显然对无序容器无意义),当然有序容器也能用下面的equal_range。
equal_range(K) 返回一个pair,其中包含两个迭代器,指明等于KEY等于K的范围
STL关联容器总结的更多相关文章
- STL关联容器
这里简单学习一下STL关联容器,主要是map.multimap.set.multiset以及unordered_map.前四个底层实现都是利用红黑树实现的,查找算法时间复杂度为\(O(log(n))\ ...
- STL关联容器的基本操作
关联容器 map,set map map是一种关联式容器包含 键/值 key/value 相当于python中的字典不允许有重复的keymap 无重复,有序 Map是STL的一个关联容器,它提供一对一 ...
- STL关联容器值hashtable
hashtable(散列表)是一种数据结构,在元素的插入,删除,搜索操作上具有常数平均时间复杂度O(1); hashtable名词 散列函数:负责将某一元素映射为索引. 碰撞(collision):不 ...
- STL 笔记(二) 关联容器 map、set、multimap 和 multimap
STL 关联容器简单介绍 关联容器即 key-value 键值对容器,依靠 key 来存储和读取元素. 在 STL 中,有四种关联容器,各自是: map 键值对 key-value 存储,key 不可 ...
- STL List容器
转载http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 各个容器有很多的相似性.先学好一个,其它的就好办了.先从基础开始 ...
- ###STL学习--关联容器
点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的关联容器. ###stl学习 |--迭 ...
- STL的基本使用之关联容器:map和multiMap的基本使用
STL的基本使用之关联容器:map和multiMap的基本使用 简介 map 和 multimap 内部也都是使用红黑树来实现,他们存储的是键值对,并且会自动将元素的key进行排序.两者不同在于map ...
- STL的基本使用之关联容器:set和multiSet的基本使用
STL的基本使用之关联容器:set和multiSet的基本使用 简介 set 和 multiSet 内部都是使用红黑树来实现,会自动将元素进行排序.两者不同在于set 不允许重复,而multiSet ...
- STL之关联容器---set, mutilset, map, mutilmap
STL的容器分为序列容器和关联容器.它们所表达的数据结构各有不同: 序列容器:vector(变长数组), list(链表), queue(队列), heap(堆算法)等 关联容器:set/mutils ...
随机推荐
- 使用ResXmanager实现多语言[转]
1 多國語系 - 使用RESXMANAGER管理資源檔 1.1 前言 在實作多國語系網站時,針對靜態文字多會使用資源檔(Resource)來對應出各語系所需顯示的內容.由於資源檔可能會依照特定結構放式 ...
- pip 更换镜像源
国内的pip源 阿里云:https://mirrors.aliyun.com/pypi/simple/ 清华:https://pypi.tuna.tsinghua.edu.cn/simple 中国科技 ...
- WPF Dispatcher.BeginInvoke子线程更新UI
在开发WPF应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象.“ 是因为UI线程是WPF应用的主线程,若尝试子线程更新UI线程应使用Dispatcher.BeginInvoke()或者I ...
- markdwon编辑公式入门
上标与下标 上标和下标分别使用^ 与_ ,例如\(x_i^2\)表示的是:. 默认情况下,上.下标符号仅仅对下一个组起作用.一个组即单个字符或者使用{..} 包裹起来的内容.如果使用\(10^ ...
- Windows新建域时 administrator账户密码不符合要求解决办法~!
解决方法 在cmd 命令行中 输入 net user administrator /passwordreq:yes
- ST表求区间最值
#include<bits/stdc++.h> #define ll long long #define lowbit(x) x&-x using namespace std; ; ...
- Ubuntu中chrome浏览器安装、卸载
一.卸载 sudo apt-get autoremove google-chrome-stable 删除下载源:sudo rm /etc/apt/sources.list.d/google-chrom ...
- The view or its master was not found or no view engine supports the searched locations
Error like:The view 'LoginRegister' or its master was not found or no view engine supports the searc ...
- PP: A multi-horizon quantile recurrent forecaster
2017 NIPS, time series workshop traditional methods: ARIMA. Seq2Seq quantile forecast; RELATED WORK ...
- npm 升级到最新版本
先npm -v查看自己的npm 是否是最新版本,如果不是则进入安装node的文件夹,可通过 where node 查找该文件夹. 进入之后使用: npm i npm -g 之后使用: npm -v 查 ...