c/c++ 标准库 map set 删除
标准库 map set 删除
删除操作
有map如下:
map<int, size_t> cnt{{2,22}, {3,33}, {1,11}, {4,44};
删除方法:
| 删除操作种类 | 功能描述 |
|---|---|
| cnt.erase(3); | 删除key为3的元素,并返回删除的元素的个数 |
| cnt.erase(p); | p为迭代器,删除p指向的元素,并返回p之后元素的迭代器 |
| cnt.erase(b, e); | b,e为迭代器,删除b和e所表示范围的元素,返回e |
注意:当使用迭代器删除的时候,map,set,list迭代器不支持加法,减法运算,但可以++,--。
map<int, int>::const_iterator it = mp.cbegin();
auto it2 = it + 2;//NG
++it;//OK
小例子:
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
int main(){
map<int , int> mp{{2,22},{3,33},{1,11},{4,44}};
for(auto const &s : mp){
cout << s.first << "," << s.second << endl;
}
cout << "-----------------" << endl;
map<int, int>::const_iterator it = mp.cbegin();
//map,set,list迭代器不支持加法,减法运算,但可以++,--。
//auto it2 = it + 2;//NG
auto it2 = mp.find(2);
auto rt2 = mp.erase(it, it2);//删除1,rt2指向(2,22)
cout << rt2->first << ":" << rt2->second << endl;
auto rt1 = mp.erase(it2);//删除2
cout << rt1->first << ":" << rt1->second << endl;
auto rt = mp.erase(3);//删除3,返回值为1或者0,因为3存在所以返回1
for(auto const &s : mp){
cout << s.first << "," << s.second << endl;
}
}
c/c++ 学习互助QQ群:877684253
本人微信:xiaoshitou5854
c/c++ 标准库 map set 删除的更多相关文章
- c/c++ 标准库 map multimap元素访问
标准库 map multimap元素访问 一,map,unordered_map下标操作 下标操作种类 功能描述 c[k] 返回关键字为k的元素:如果k不在c中,添加一个关键字为k的元素,并对其初始化 ...
- c/c++ 标准库 map set 插入
标准库 map set 插入 一,插入操作 有map如下: map<string, size_t> cnt; 插入方法: 插入操作种类 功能描述 cnt.insert({"abc ...
- c/c++ 标准库 map set 大锅炖
标准库 map set 大锅炖 一,关联容器有哪些 按关键字有序保存元素 map 保存key和value set 只保存key mulutimap key可以重复出现 multiset key可以重复 ...
- C++之标准库map
目录 1.成员函数 2.元素访问 3.迭代器Iterators(C++ 11) 4.容量Capacity 5.修改函数(C++ 11和C++ 17) 6.查找表Lookup 7.观察Observers ...
- C++ Primer 有感(标准库map类型)
map是键-值对的集合.map类型通常可以理解为关联数组:可以使用键作为下标获取一个值,正如内置数组一样.而关联的本质在于元素的值于某个特定的键相关联,而并非通过元素在数组中的位置获取. 1.map对 ...
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时 ...
- STL标准库-容器-set与map
STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...
- 《C++ Primer》学习笔记【第二部分 C++标准库】
第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中 2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...
- 【转】C++标准库和标准模板库
C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...
随机推荐
- T4代码生成器
最近用MVC时业务上需要新增不同类型的视图页面,实际上页面排版什么的都差不多,只是内容有所不同,但是不能使用同一个视图. 想到了用T4代码生成器完成,之前就有听说过这个好东西,但是一直没有深入研究.借 ...
- 面试题·HashMap和Hashtable的区别(转载再整理)
原文链接: Javarevisited 翻译: ImportNew.com- 唐小娟 译文链接: http://www.importnew.com/7010.html HashMap和Hashtabl ...
- TensorFlow中的Placement启发式算法模块——Placer
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 受限于单个Device的计算能力和存储大小,许多深度学习模型都有着使用模型分片 ...
- SHELL脚本--变量(基础)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$ ...
- Python循环结构用法
本文介绍python中的while循环.for循环.在python中for可以用于循环,也可用于另一种近亲的列表解析,列表解析是python中非常重要的特性,详细内容见后面的文章. 一般来说,pyth ...
- 【动画】看动画轻松理解「Trie树」
Trie树 Trie这个名字取自“retrieval”,检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词. 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 以示区别 ...
- Flask-Mail
WOW! 我的大号QQ收到了小号QQ的邮件! 小玩Flask-Mail 先到小号邮箱开启服务并获取获取授权码 https://jingyan.baidu.com/article/b0b63dbf1b ...
- sqlserver 2008R2新建数据库时报错,提示无法获得数据库"model"上的排它锁
刚新装了个sqlserver2008 R2,在建立数据库时候报错,提示无法获得数据库"model"上的排它锁.解决办法如下: 打开查询页面,执行下面的语句即可. use maste ...
- python面向对象学习(一)基本概念
目录 1. 面向对象基本概念 1.1 过程和函数 1.2 面相过程 和 面相对象 基本概念 2. 类和对象的概念 1.1 类 1.3 对象 3. 类和对象的关系 4. 类的设计 大驼峰命名法 4.1 ...
- js 策略模式 实现表单验证
策略模式 简单点说就是:实现目标的方式有很多种,你可以根据自己身情况选一个方法来实现目标. 所以至少有2个对象 . 一个是策略类,一个是环境类(上下文). 然后自己就可以根据上下文选择不同的策略来执 ...