c++ STL map容器成员函数
map容器用于查找,设置键值和元素值,输入键值,就能得到元素值。map对象中的元素时刻都是有序的,除非无序插入的。它是用平衡树创建的。查找很快。
函数 |
描述,注意有r的地方都是不能用it代替的。 |
map (comp,alloc) map (it first, it last, comp,alloc) map (map& x) |
Comp为比较函数,用于排序,alloc不用鸟它。两个参数有默认值,可不填,按默认的。创建空map。 用一段元素填充,并设置排序函数。 拷贝x中的元素并创建新map。估计新的map对象的comp也是和x一样。 |
mapped_type& m.at (key_type& k) |
返回键值k对应的元素值,回值引用类型的。 |
it m.begin() |
返回第1个元素的地址,也就是有序的首个元素。 |
const_it m.cbegin() |
功能同上,但是不能修改此元素。 |
const_it m.cend() |
返回最后一个元素的下一个元素的地址,不可修改元素值。若容器为空,则返回同cbegin。 |
Void m.clear() |
清空容器内所有元素。 |
int m.count(key_type& k) |
若键值k对应的元素存在,则返回1,否则0。 |
const_rit m.crbegin() |
返回最后一个元素的地址。 |
const_rit m.crend() |
返回首个元素的前一个元素地址,该地址无元素。 |
pair<it,bool> m.emplace (键值,单个元素) |
插入。若键值不存在,则插入,并返回一对参数分别为元素地址和true。否则返回已存在的那个元素地址和false。 |
it m.emplace_hint (it pos,单个元素) |
插入。若键值不存在,则插入到pos所指位置,并返回该地址。否则返回已存在的那个元素地址。这样插就不一定会保证有序了。 |
bool m.empty() |
若容器为空,则返回true,否则false。 |
it m.end() |
返回最后一个元素的下一个元素地址。该地址无元素。 |
pair<it,it> m.equal_range (k) |
返回键值k的元素位置,包括首地址和尾地址,这两个指针内只有一个元素。若不存在k,则返回两个begin的地址。 |
void m.erase (it pos) int m.erase (k) void m.erase (it first, it last) |
删除pos地址的元素。 删除键值为k的元素,返回剩余元素个数。 删除一段元素,last所指元素不删。 |
it m.find(k) |
寻找键值为k的元素,并用返回其地址。找不到则返回end的地址。 |
Get_allocator |
不懂 |
pair<it,bool> m.insert (val) it m.insert (it pos, val) void m.insert (It first, It last) |
插入元素。例如mymap.insert ( std::pair<char,int>('a',100) )并返回其地址和true。Pair也可以定义成一个变量形式的。 插入val到指定的pos位置,返回pos。若失败,it指向已存在的那个元素。 将first到last的一段元素插入进去。 |
key_compare m.key_comp() |
返回m的比较对象。类似于返回了一个函数,此函数可用来比较两个map中的元素大小,参数是两个键值。 |
It m.lower_bound (k) |
返回键值k的元素的首地址。 |
Int m.max_size() |
返回能容纳元素的数量。 |
map& operator= (const map& x) |
复制。将一个map对象复制到另一对象。注:1对象可包含多个元素。 |
mapped_type& operator[] (const key_type& k) |
可以用下标法查找元素。比如m[10]表示返回键值为10的元素,不输出键值。 |
rit m.rbegin() |
返回反向的首元素的地址,得用反向指针。 |
rit m.rend() |
返回正向的首元素的地址,也就是反向的尾地址了。 |
int m.size() |
返回map中已存在元素的数量。 |
It m.upper_bound (k) |
返回键值为k的元素的末地址,该地址是其他元素。 |
void m.swap(map& x) |
将两个map对象换名字。 |
value_compare m.value_comp() |
返回元素比较函数,可以用于比较值大小。例如mymap.value_comp()(*it, highest)这里highest的类型是pair型的,即std::pair<char,int> |
bool operator== ( const map<Key,T,Compare,Alloc>& lhs,const map<Key,T,Compare,Alloc>& rhs ); bool operator!= ( const map<Key,T,Compare,Alloc>& lhs,const map<Key,T,Compare,Alloc>& rhs ); bool operator< ( const map<Key,T,Compare,Alloc>& lhs,const map<Key,T,Compare,Alloc>& rhs ); bool operator<= ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs ); bool operator> ( const map<Key,T,Compare,Alloc>& lhs, const map<Key,T,Compare,Alloc>& rhs ); bool operator>= ( const map<Key,T,Compare,Alloc>& lhs,const map<Key,T,Compare,Alloc>& rhs ) |
|
void swap (map& x, map& y) |
交换两个map对象的名字,两对象必须是同类型的。 |
c++ STL map容器成员函数的更多相关文章
- c++ STL stack容器成员函数
这是后进先出的栈,成员函数比较简单,因为只能操作栈顶的元素.不提供清除什么的函数. 函数 描述 bool s.empty() 栈是否为空(即size=0).若空,返回true,否则,false. vo ...
- c++ STL deque容器成员函数
deque是双向队列,即可以在头部插入删除,也可以在尾部插入删除.内部并不连续,这一点和vector并不一样.可能第1个元素和第2个元素的地址是不连在一起的.在使用时用it迭代器会安全一点. 这是c+ ...
- c++ STL list容器成员函数
list是一个双链表. 函数 描述 void l.assign (int n, const val) void l.assign (it first, it last) 将链表l初始化为n个相同的va ...
- 详解C++ STL map 容器
详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...
- C++ STL map容器值为指针时怎么释放内存
最近在使用STL中map时,遇到了一个问题,就是当map中值为指针对象时怎么释放内存? // 站点与TCP连接映射表 (key为ip_port_stationCode, value为 clientSo ...
- c++使用map保存成员函数地址
note 本基于c++11介绍一种使用map保存成员函数地址 可避免使用 if 和 switch 配置灵活 方便, 代码维护效率高 结果: 范例开始 头文件包含 #include <iostre ...
- stl::map之const函数访问
如何在const成员数中访问stl::map呢?例如如下代码: string ConfigFileManager::MapQueryItem(const string& name) const ...
- STL --> map容器
map容器 一.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 二.ma ...
- STL容器 成员函数 时间复杂度表
Sequence containers Associative containers Headers <vector> <deque> <list> <s ...
随机推荐
- LVM使用
LVM框架 LVM实验环境准备 创建一个128MB的文件模拟磁盘 [centos@centos lvm]$ dd if=/dev/zero of=./disk.img count=128 bs=1MB ...
- spring零配置AOP踩坑指南
今天照着书,试着配了AOP(全注解),结果踩了各种坑,后来参考书附带的源码,终于走出来了,现在总结一下 除了spring的jar包以外,还需要导入以下包: 1.Spring核心配置文件beans.xm ...
- 洛谷P2258 子矩阵
P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4 ...
- 洛谷P4018 Roy&October之取石子
题目背景 \(Roy\)和\(October\)两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有\(n\)个石子,两人每次都只能取\(p^k\)个(\(p\)为质数,\(k\)为自然数,且 ...
- Jmeter性能测试-----参数化方法CSVRead函数
Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这 ...
- js 数组,字符串,json互相转换(在select实现多个输入的时候与后台交互常使用)
数组转字符串 var arr = [1,2,3,4,'巴德','merge']; var str = arr.join(','); console.log(str); // 1,2,3,4,巴德,me ...
- JS异步解决方案之概念理解-----------阻塞和非阻塞,同步和异步,并发和并行,单线程和多线程
首先记住一句话,JS是单线程的. 单线程意味着什么?单线程意味着 它不能依靠自己实现异步. JS实现的异步,往往都是靠 浏览器.Node 的机制(事件驱动.回调)实现的. 下面让我这个单身狗 以谈恋爱 ...
- CentOS7.3下Zabbix3.5之微信报警配置
一.报警脚本放到服务端的 /usr/lib/zabbix/alertscripts/下 属组属主为zabbix zabbix 有执行权限vim weixinbaojing.py # ...
- Nim && Grundy (基础博弈游戏 )
通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法 ...
- 在SpringBoot中使用Docker(利用dockerfile-maven-plugin插件)
周末在家做了一个实验: 将Docker通过插件的方式集成到SpringBoot中 然后通过Maven命令根据项目中的Dockerfile自动生成Docker镜像,同时将镜像推送到远程Linux服务器( ...