标准库 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;
}

github完整代码

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

c/c++ 标准库 map set 插入的更多相关文章

  1. c/c++ 标准库 map multimap元素访问

    标准库 map multimap元素访问 一,map,unordered_map下标操作 下标操作种类 功能描述 c[k] 返回关键字为k的元素:如果k不在c中,添加一个关键字为k的元素,并对其初始化 ...

  2. c/c++ 标准库 map set 删除

    标准库 map set 删除 删除操作 有map如下: map<int, size_t> cnt{{2,22}, {3,33}, {1,11}, {4,44}; 删除方法: 删除操作种类 ...

  3. c/c++ 标准库 map set 大锅炖

    标准库 map set 大锅炖 一,关联容器有哪些 按关键字有序保存元素 map 保存key和value set 只保存key mulutimap key可以重复出现 multiset key可以重复 ...

  4. C++之标准库map

    目录 1.成员函数 2.元素访问 3.迭代器Iterators(C++ 11) 4.容量Capacity 5.修改函数(C++ 11和C++ 17) 6.查找表Lookup 7.观察Observers ...

  5. C++ Primer 有感(标准库map类型)

    map是键-值对的集合.map类型通常可以理解为关联数组:可以使用键作为下标获取一个值,正如内置数组一样.而关联的本质在于元素的值于某个特定的键相关联,而并非通过元素在数组中的位置获取. 1.map对 ...

  6. C++(十一)— map的插入、查找、删除

    标准库map类型是一种以键-值(key-value)存储的数据类型. map是STL的一个关联容器.它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值 ...

  7. c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑

    转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时 ...

  8. c/c++ 标准库 插入迭代器 详解

    标准库 插入迭代器 详解 插入迭代器作用:copy等函数不能改变容器的大小,所以有时copy先容器是个空的容器,如果不使用插入迭代器,是无法使用copy等函数的. 例如下面的代码就是错误的: list ...

  9. STL标准库-容器-set与map

    STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...

随机推荐

  1. ES6 系列之私有变量的实现

    前言 在阅读 <ECMAScript 6 入门>的时候,零散的看到有私有变量的实现,所以在此总结一篇. 1. 约定 实现 class Example { constructor() { t ...

  2. CentOS7 Hadoop 3.1.0 编译安装

    1.配置环境变量 JAVA_HOME=/jdk1..0_131 ANT_HOME=/apache-ant- MAVEN_HOME=/apache-maven- FINDBUGS_HOME=/findb ...

  3. Mysql加锁过程详解(7)-初步理解MySQL的gap锁

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  4. MyBatis源码解析(四)——DataSource数据源模块

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6634880.html 1.回顾 上一文中解读了MyBatis中的事务模块,其实事务操作无非 ...

  5. Perl文件名通配和文件查找

    在shell中使用*来对文件名进行通配扩展,在Perl中也同样支持文件名通配.而且perl中的glob通配方式和shell的通配方式完全一致,实际上perl的glob函数就是直接调用csh来通配的(如 ...

  6. SpringBoot之前端文件管理

    WebJars能使Maven的依赖管理支持OSS的JavaScript库/CSS库,比如jQuery.Bootstrap等. (1)添加js或者css库 pom.xml <dependency& ...

  7. vs 中引用自己创建程序集出现小叹号

    出现的问题: 原因是.net frame work版本不一致 解决方法: 项目单击右键-->属性: 改为与你要引用的项目的程序集的版本一致即可

  8. C#基础知识总结(四)

    摘要 循环结构的总结.跳转语句(break.continue).调试程序 一.循环结构的总结 1.while循环 ; ) { Console.WriteLine(i); i++; } 2.do-whi ...

  9. js数据类型有哪些,js属性和方法的归属,

    1.js的数据类型有哪些? 2.全局方法和全局属性? 一 1.js的本质就是处理数据,数据来自后台的数据库.所以变量就起到一个临时存储数据的作用. ECMAScript 制定了js的数据类型. 数据类 ...

  10. angular ng-repeat 动态获取的dom片段 显示

    .filter('to_trusted', ['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(tex ...