STL-----map
Map STL -----
2023-09-14 09:08:54 时间
map/multimap基本概念
Map的特性是,所有元素都会根据元素的键值自动排序。
Map所有的元素都是pair,同时拥有实值和键值,pair的第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值。
我们不可以通过map的迭代器改变map的键值, 因为map的键值关系到map元素的排列规则,任意改变map键值将会严重破坏map组织。如果想要修改元素的实值,那么是可以的。
Map和list拥有相同的某些性质,当对它的容器元素进行新增操作或者删除操作时,操作之前的所有迭代器,在操作完成之后依然有效,当然被删除的那个元素的迭代器必然是个例外。
Multimap和map的操作类似,唯一区别multimap键值可重复。
Map和multimap都是以红黑树为底层实现机制。
map/multimap常用API
map构造函数
map<T1, T2> mapTT;//map默认构造函数:
map(const map &mp);//拷贝构造函数
map赋值操作
map& operator=(const map &mp);//重载等号操作符
swap(mp);//交换两个集合容器
map大小操作
size();//返回容器中元素的数目
empty();//判断容器是否为空
map插入数据元素操作
map.insert(...); //往容器插入元素,返回pair<iterator,bool>
map<int, string> mapStu;
// 第一种 通过pair的方式插入对象
mapStu.insert(pair<int, string>(3, "小张"));
// 第二种 通过pair的方式插入对象
mapStu.inset(make_pair(-1, "校长"));
// 第三种 通过value_type的方式插入对象
mapStu.insert(map<int, string>::value_type(1, "小李"));
// 第四种 通过数组的方式插入值
mapStu[3] = "小刘";
mapStu[5] = "小王";
map删除操作
clear();//删除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg,end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(keyElem);//删除容器中key为keyElem的对组。
map查找操作
find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;/若不存在,返回map.end();
count(keyElem);//返回容器中key为keyElem的对组个数。对map来说,要么是0,要么是1。对multimap来说,值可能大于1。
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。
相关文章
- java map转json字符_Map转JSON字符串
- java map 二维数组_Java二维数组实现简单Map
- java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key
- [译] JavaScript -- Map vs ForEach
- 一文搞清楚ES6新增数据结构 Symbol Map WeakMap Set WeakSet
- 2022-10-31:以下go语言代码输出什么?A:map[];B:nil;C:Panic;D:编译错误。 package main import “fmt“
- Map的有序性_有序的map集合有哪些
- Java中HttpServletRequest请求参数转Map工具类/接收HttpServletRequest请求参数转Map
- eBPF 入门开发实践指南六:捕获进程发送信号的系统调用集合,使用 hash map 保存状态
- ORA-15562: workload replay client cannot read the DBA_WORKLOAD_CONNECTION_MAP view ORACLE 报错 故障修复 远程处理
- Hadoop学习总结之三:Map-Reduce入门详解大数据
- Map转换List一些方法详解编程语言
- Oracle 视图 DBA_WORKLOAD_USER_MAP 官方解释,作用,如何使用详细说明
- Oracle 视图 MAP_OBJECT 官方解释,作用,如何使用详细说明
- Oracle 视图 V$MAP_SUBELEMENT 官方解释,作用,如何使用详细说明
- lambda表达式&map&filter&yield详解编程语言
- C++ map,STL map详解
- C++ map的创建(STL map的创建)详解
- C++ map(STL map)构造元素(emplace和emplace_hint函数)详解
- C++ map(STL map)operator[]和insert()效率对比(深度剖析)
- 使用Redis存储Map结构数据(redis存储map)
- Redis精准读取Map数据的窍门(redis获取map)
- Oracle中Map结构的精妙运用(oracle中MAP结构)
- 在Redis中使用Map存储数据(redis里面加入map)
- 探索Redis中的Map之谜(redis里查map)
- 浅析stl序列容器(map和set)的仿函数排序