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和 ...
随机推荐
- centos7下安装samba服务器
samba笔记: http://services.linuxpanda.tech/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/samb ...
- Java——String对象
前言 实际上任何语言都没有提供字符串这个概念,而是使用字符数组来描述字符串.Java里面严格来说也是没有字符串的,在所有的开发里面字符串的应用有很多,于是Java为了应对便创建了String类这个字符 ...
- MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken
前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...
- Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题
现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下.如果您也碰到了同样的问题,希望本文对您有用. 问题描述 @Ap ...
- golang高性能RPC:Apache Thrift安装使用完全攻略
在企业应用中RPC的使用可以说是十分的广泛,使用该技术可以方便的与各种程序交互而不用考虑其编写使用的语言. 如果你对RPC的概念还不太清楚,可以点击这里. 现今市面上已经有许多应用广泛的RPC框架,比 ...
- win10下安装PHP_CodeSniffer 检查编码规范
PHP CodeSniffer是PEAR中的一个用PHP5写的一个PHP的代码风格检测器,它根据预先设定好的PHP编码风格和规则,去检查应用中的代码风格情况是否有违反一组预先设置好的编码标准,内置了Z ...
- MySql常用 join 详解
虽然这类资料比较多....我觉得还是有必要记下来,新手可以看看吧...老司机可以一眼飘过那... 常用SQL JOINS方式 1.SELECT select_list FROM TABLEA A LE ...
- Java_文件夹分割与合并
一.思路: 1.文件切割: 使用类RandomAccessFile ,其中方法seek可以自定义读取位置,读一段,通过字节输出流(我使用BufferedOutputStream)写一段 2.文件合并 ...
- Java高并发--AQS
Java高并发--AQS 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 AQS是AbstractQueuedSynchronizer的简称,直译过来是抽象队列同步器. ...
- Mybatis框架可视化(1)
Mybatis整体架构视图: 接 口 层 SqlSession (定义了Mybatis暴露给应用程序调用的API) 核 心 处 理 层 配置解析 (加载核心配置.映射配置. mapper接口注解信息, ...