c/c++ 标准库 map set 插入
标准库 map set 插入
一,插入操作
有map如下:
map<string, size_t> cnt;
插入方法:
| 插入操作种类 | 功能描述 |
|---|---|
| cnt.insert({"abc", 12}); | 直接用大括号 |
| cnt.insert(make_pari("abc", 22)); | 用make_pair函数,返回一个pair |
| cnt.insert(pair<string, size_t>("abc", 22)); | 直接构造pair |
| cnt.insert(map<string, size_t>::value_type("abc",31)); | 有map的value_type |
插入注意:map,set没有重复的key,所以插入重复key的pair时,实际是没有插入进去的。
map<int, int> mp{{1,2},{2,3}};
mp.insert({1,3});//{1,3}的key和{1,2}重复了,所以mp还是原来的:{1,2},{2,3}
二,map和multimap的插入单一值的返回值
| 类型 | 功能描述 |
|---|---|
| map | 返回一个pair。first是迭代器,second是bool,插入成功second为true |
| multimap | 返回一个迭代器 |
小例子索引
| 代码块 | 功能描述 |
|---|---|
| test1 | 4种插入方式 |
| test2 | map insert的返回值 |
| test3 | multimap insert的返回值 |
小例子:
#include <iostream>
#include <set>
#include <map>
#include <vector>
using namespace std;
int main(){
//test1 4种插入方式
/*
map<int, int> mp{{1,2},{2,3}};
//方式1
mp.insert({1,3});//insert不成功,因为key1已经存在
//方式2
mp.insert(make_pair(3,4));
//方式3
mp.insert(pair<int,int>(4,1));
//方式4
mp.insert(map<int,int>::value_type(5,1));
for(auto &s : mp){
cout << s.first << "," << s.second << endl;
}
*/
//test2 map insert的返回值
/*
map<string, size_t> cnt;
string wd;
while(cin >> wd){
//map和setinsert的返回值类型如下,用auto也可以
pair<map<string, size_t>::iterator, bool> ret =
cnt.insert({wd, 1});
//auto ret = cnt.insert({wd, 1});
if(!ret.second){
++ret.first->second;
}
}
for(auto &s : cnt){
cout << s.first << ":" << s.second << endl;
}
*/
//test3 multimap insert的返回值
multimap<string, size_t> aus;
aus.insert({"aaa", 1});
//multi的返回值类型如下
map<string, size_t>::iterator ret = aus.insert({"aaa", 2});
cout << ret->first << ":" << ret->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<int, size_t> cnt{{2,22}, {3,33}, {1,11}, {4,44}; 删除方法: 删除操作种类 ...
- 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++(十一)— map的插入、查找、删除
标准库map类型是一种以键-值(key-value)存储的数据类型. map是STL的一个关联容器.它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值 ...
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时 ...
- c/c++ 标准库 插入迭代器 详解
标准库 插入迭代器 详解 插入迭代器作用:copy等函数不能改变容器的大小,所以有时copy先容器是个空的容器,如果不使用插入迭代器,是无法使用copy等函数的. 例如下面的代码就是错误的: list ...
- STL标准库-容器-set与map
STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...
随机推荐
- solr查询工作原理深入内幕
1.什么是Lucene? 作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用, ...
- React hooks实践
前言 最近要对旧的项目进行重构,统一使用全新的react技术栈.同时,我们也决定尝试使用React hooks来进行开发,但是,由于React hooks崇尚的是使用(也只能使用)function c ...
- 跨域学习笔记1--跨域调用webapi
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
- [转]usdt omnicore testnet 测试网络
本文转自:https://www.jianshu.com/p/417c280b8f9f Testnet 模式允许 omni core 运行在比特币测试链上,用于安全测试. 为了在 testnet 上收 ...
- 金三银四招聘季,这些BAT以及独角兽互联网公司官方招聘网站值得关注。(个人梳理备用:附BAT以及独角兽公司官方招聘网址)
金三银四是一年当中的招聘最旺盛的时期,即招聘高峰期,在这个期间内有非常多名企巨头公司的放出大量的岗位信息.以博主几年的工作经验来看,在这期间找到称心如意的工作的几率大大提升,对于很多程序员来说,薪水高 ...
- IDEA更换主题
更换IDEA主题只需要3步 1. 下载主题 在主题网站上IDEA Color Themes 上浏览喜欢的主题并下载该主题.(如果网址有变更,google IDEA themes即可.) 2. 导入主 ...
- c#的WebService和调用
WebService: 1.新建一个空白web应用程序 2.在上面建立的web应用程序添加web服务 4.保存发布至 IIS Client: 1.新建一个程序(可以是winform.控制台.web) ...
- [android] 服务的生命周期(混合方式)
绑定服务:可以调用服务里面的方法, 如果调用者activity销毁了,服务也会跟着销毁 单独解除绑定的时候,服务也会被销毁 开启服务:不可以调用服务里面的方法 如果调用者activity退出了,服务还 ...
- 理解Promise的3种姿势
译者按: 对于Promise,也许你会用了,却并不理解:也许你理解了,却只可意会不可言传.这篇博客将从3个简单的视角理解Promise,应该对你有所帮助. 原文: Three ways of unde ...
- js/es6 元素拖动
元素事件:鼠标按下事件/鼠标移动事件/鼠标松开事件 元素样式:让元素脱离文档流,采用绝对定位的方式. 一.鼠标按下事件 当鼠标在元素上面按下时,保存元素的初始偏移量和鼠标按下时的坐标,然后在状态变量里 ...