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 ****** ...
最新文章
- 架构设计之分布式文件系统
- 苹果如何使用神经网络在点云中做对象检测
- mysql主从 1050错误
- Java进阶学习之Java架构师的学习路线
- 系统架构设计师与系统分析师历年实体分析与解答下载_医疗知识图谱问答系统探究(一)...
- jQuery实现一个图片左右滚动
- 思科华为双向的chap
- WordCount案例实现的11种方法
- js ide WebStorm 使用总结
- 程序员如何成为一名自由职业者?
- 基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录
- html语言文本框怎么做,HTML文本框参考样式
- 微信小程序用户隐私保护指引设置怎么填?
- 洛谷P5149 会议座位
- mysql int 11 最大多少_MySQL中int(11)最大长度是多少?
- PyQt5中的按钮2-QToolButton
- t5810做虚拟服务器,戴尔Precision T5810工作站选用CPU的问题 | 小迪的生产力工具室...
- suma++ TensorRT Not Found
- 端午临中夏,时清日复长。
- 【CSDN博客之星】您的支持就是我最大的动力!喜欢本博客的读者,请拿出您宝贵的几秒钟时间来支持一下吧,非常感谢~
热门文章
- HDLBits答案(5)_Generate实例化模块
- java ssm 项目案例,亲测可用的JAVA SSM项目
- java项目红叉_完美解决Eclipse导入的项目上有个红叉,但不影响项目运行的问题
- 关系式调用c语言脚本_认识LoadRunner脚本语言
- 按照姓名升序排序的代码_干货:6种EXCEL排序方法,让老板对你刮目相看
- 列表排序并返回索引_Python特性—列表,看完你就能轻松驾驭,拿走不谢
- arcsoft panorama maker 6_2021年6月30日入宅新居好吗,农历五月二十一是乔迁吉利日吗——天玄网...
- matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
- HttpApplication类及派生的Global类
- Oracle 左连接、右连接、全外连接、(+)号作用