C++17下map不常用的接口函数汇总
C++17下的map提供了如下接口:
- emplace( Args&&... args ),原位构造元素,将参数
args...转发给构造函数并插入生成元素
- emplace_hint( const_iterator hint, Args&&... args ) 原位构造元素,插入新元素到容器中尽可能接近于恰在
hint
前的位置 - try_emplace(const key_type& k, Args&&... args)
try_emplace(key_type&& k, Args&&... args)
try_emplace(const_iterator hint, const key_type& k, Args&&... args)
try_emplace(const_iterator hint, key_type&& k, Args&&... args)
若键不存在则原位插入,若键存在则不做任何事 extract( const_iterator position )
extract( const key_type& x ) 从另一容器释出结点
merge(std::map<Key, T, C2, Allocator>& source)
merge(std::map<Key, T, C2, Allocator>&& source)
merge(std::multimap<Key, T, C2, Allocator>& source)
merge(std::multimap<Key, T, C2, Allocator>&& source)
从另一容器接合结点insert_or_assign(const key_type& k, M&& obj)
insert_or_assign(key_type&& k, M&& obj)
insert_or_assign(const_iterator hint, const key_type& k, M&& obj)
insert_or_assign(const_iterator hint, key_type&& k, M&& obj)
插入元素,或若关键已存在则赋值给当前元素
例子如下:
map<int, int> myMap;
auto[iter, bSuccess] = myMap.emplace(1,2);
auto[newIter, bNewSuccess] = myMap.emplace(1, 2);
myMap.emplace_hint(myMap.begin(), 2, 3);
上面的第二句等同于std:make_pair<int, int>(1, 2),即等同于将键为1,值为2的键值对插入myMap ,等同于如下代码:
map<int, int> myMap{std::make_pair(1,2)};
或
map<int, int> myMap{{1,2}};
或
map<int, int> myMap;
myMap[1] = 2;
auto[iter, bSuccess] 中的iter表示插入键值对的位置,bSuccess表示是否插入成功,此时bSuccess应该为true。由于第2句代码已经插入了1,2,则第3句代码bNewSuccess应为false。
emplace_hint很简单,即使提供一个插入的迭代器,在指定的迭代器位置插入。
另外下面链接也很不错:STL常用操作:map_zhuikefeng的博客-CSDN博客
C++17下map不常用的接口函数汇总相关推荐
- hive-内置函数(常用内置函数汇总)
show functions; #查看所有内置函数,共271个 show function sum; #查看sum函数的描述信息 show function extended sum; #查看内置函数 ...
- MATLAB cvx工具箱中常用的替换函数汇总,解决表达式报错问题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.基础函数 二.进阶函数 1.inv_pos()-正数的倒数 2.norm_inv_pos(x, p)-逆范数函数 ...
- Python常用内置类和常用内置函数汇总
一:内置类:(1)常用内置类1,class int(object): """ int(x=0) -> integer int(x, base=10) -> i ...
- R 语言常用操作与函数汇总
总结了一下 R 语言中常用的一些操作与函数使用,抛砖引玉,分享一下给大家,如有错误的地方欢迎留言指正. 怎样显示 R 软件中某个包中包含的全部数据集? > library(MASS)> d ...
- python常用内置函数汇总_太全了!Python3常用内置函数总结
数学相关 abs(a) : 求取绝对值.abs(-1) max(list) : 求取list最大值.max([1,2,3]) min(list) : 求取list最小值.min([1,2,3]) su ...
- mysql 时间函数大全_mysql常用的日期函数汇总
最近做统计时经常用到的几个mysql函数: 1. UNIX_TIMESTAMP() 该函数返回1970到现在的秒数,括号内也可以带参数,即返回1970年到指定时间段的秒数,注意是秒数,常用java的兄 ...
- 常用的Opencv函数汇总(持续更新...)
文章目录 0. 安装 1. cv.read().cv.imwrite() 2. cv2.findContours.cv2.drawContours函数 3. cv2.copyMakeBorder函数 ...
- 几个常用的js 函数汇总大全
废话不多说,直接看代码: 1.非空验证 function isNotEmpty(str){ if(str==null) { return false; } if(typeof(str)=='undef ...
- 常用字符串处理函数汇总
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
最新文章
- 《机器人爱好者(第2辑)》——《惑星历险》中的Robby
- [PM Tools]软件项目进度跟踪表v4.0
- 镜像公测招募啦!!!用镜像开通云服务器,限时免费体验!!
- c语言游戏编程网盘下载,C语言游戏编程 计算器(5分下载)
- RHEL4-SFTP配置
- ASP.NET MVC呼叫WCF Service的方法
- 基于K均值聚类算法的图像分割(Matlab)
- 记一次halo博客ssl证书过期处理过程
- sheet(isPresented:onDismiss:content:) (SwiftUI 中文文档手册 教程含源码)
- ActiveMQ在win7下启动失败解决方案
- Node如何去除短视频水印?
- 电脑病毒怎么彻底清理?你不知道的8个方法
- 计算机硬盘属于主机还是外部设备,计算机主机的外部连接分别是什么?
- 关于DB2数据库和SQL
- 【数据库运维】MYSQL备份恢复管理(下)
- 11、每日最新新闻接口,免费好用
- 【新技研】高通全新骁龙Krait 300/400处理器架构浅析
- 代码和设计是如何一步步腐化的
- IOS开发环境 Xcode 下载 安装
- 隐藏在PPT中的后现代主义印象派作品
热门文章
- 同样是做技术,为什么 Java 能比 C++ 多赚10万?
- 他95年出生,却拥有10年编程经验
- 玩转嵌入式,且看痞子衡
- 民用建筑工程给水排水设计深度图样_河南省怎样办理市政设计给水排水工程设计乙级资质...
- macos安装盘第三方工具制作_一步一步教你为macOS创建系统安装盘
- 红帽linux系统轴控系统,红帽发布企业版 Linux(RHEL) 8.0
- centos7不识别固态硬盘_固态硬盘分区与不分区哪个好【详细介绍】
- gearhost php,Gearhost 免费主机的申请
- java 跳跃表_c++实现跳跃表(Skip List)的方法示例
- matlab 判断元素索引_matlab – 获取矩阵中n个最大元素的索引