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不常用的接口函数汇总相关推荐

  1. hive-内置函数(常用内置函数汇总)

    show functions; #查看所有内置函数,共271个 show function sum; #查看sum函数的描述信息 show function extended sum; #查看内置函数 ...

  2. MATLAB cvx工具箱中常用的替换函数汇总,解决表达式报错问题

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.基础函数 二.进阶函数 1.inv_pos()-正数的倒数 2.norm_inv_pos(x, p)-逆范数函数 ...

  3. Python常用内置类和常用内置函数汇总

    一:内置类:(1)常用内置类1,class int(object): """ int(x=0) -> integer int(x, base=10) -> i ...

  4. R 语言常用操作与函数汇总

    总结了一下 R 语言中常用的一些操作与函数使用,抛砖引玉,分享一下给大家,如有错误的地方欢迎留言指正. 怎样显示 R 软件中某个包中包含的全部数据集? > library(MASS)> d ...

  5. python常用内置函数汇总_太全了!Python3常用内置函数总结

    数学相关 abs(a) : 求取绝对值.abs(-1) max(list) : 求取list最大值.max([1,2,3]) min(list) : 求取list最小值.min([1,2,3]) su ...

  6. mysql 时间函数大全_mysql常用的日期函数汇总

    最近做统计时经常用到的几个mysql函数: 1. UNIX_TIMESTAMP() 该函数返回1970到现在的秒数,括号内也可以带参数,即返回1970年到指定时间段的秒数,注意是秒数,常用java的兄 ...

  7. 常用的Opencv函数汇总(持续更新...)

    文章目录 0. 安装 1. cv.read().cv.imwrite() 2. cv2.findContours.cv2.drawContours函数 3. cv2.copyMakeBorder函数 ...

  8. 几个常用的js 函数汇总大全

    废话不多说,直接看代码: 1.非空验证 function isNotEmpty(str){ if(str==null) { return false; } if(typeof(str)=='undef ...

  9. 常用字符串处理函数汇总

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

最新文章

  1. 架构设计之分布式文件系统
  2. 苹果如何使用神经网络在点云中做对象检测
  3. mysql主从 1050错误
  4. Java进阶学习之Java架构师的学习路线
  5. 系统架构设计师与系统分析师历年实体分析与解答下载_医疗知识图谱问答系统探究(一)...
  6. jQuery实现一个图片左右滚动
  7. 思科华为双向的chap
  8. WordCount案例实现的11种方法
  9. js ide WebStorm 使用总结
  10. 程序员如何成为一名自由职业者?
  11. 基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录
  12. html语言文本框怎么做,HTML文本框参考样式
  13. 微信小程序用户隐私保护指引设置怎么填?
  14. 洛谷P5149 会议座位
  15. mysql int 11 最大多少_MySQL中int(11)最大长度是多少?
  16. PyQt5中的按钮2-QToolButton
  17. t5810做虚拟服务器,戴尔Precision T5810工作站选用CPU的问题 | 小迪的生产力工具室...
  18. suma++ TensorRT Not Found
  19. 端午临中夏,时清日复长。
  20. 【CSDN博客之星】您的支持就是我最大的动力!喜欢本博客的读者,请拿出您宝贵的几秒钟时间来支持一下吧,非常感谢~

热门文章

  1. HDLBits答案(5)_Generate实例化模块
  2. java ssm 项目案例,亲测可用的JAVA SSM项目
  3. java项目红叉_完美解决Eclipse导入的项目上有个红叉,但不影响项目运行的问题
  4. 关系式调用c语言脚本_认识LoadRunner脚本语言
  5. 按照姓名升序排序的代码_干货:6种EXCEL排序方法,让老板对你刮目相看
  6. 列表排序并返回索引_Python特性—列表,看完你就能轻松驾驭,拿走不谢
  7. arcsoft panorama maker 6_2021年6月30日入宅新居好吗,农历五月二十一是乔迁吉利日吗——天玄网...
  8. matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
  9. HttpApplication类及派生的Global类
  10. Oracle 左连接、右连接、全外连接、(+)号作用