插入结构体时,emplace比insert少一次拷贝构造,推荐使用emplace

// map_emplace.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include <map>
#include <string>
using namespace std;struct Clinet {string host;int port;Clinet(string hostParam, int portParam):host(hostParam),port(portParam) {cout << "Clinet Construct" << endl;}Clinet(const Clinet &other) :host(other.host), port(other.port){cout << "Clinet Copy Construct" << endl;}
};int main()
{map<int, struct Clinet> mapTmpVariable;mapTmpVariable.emplace(1, Clinet("192.168.100.1", 1000));mapTmpVariable.emplace(2, Clinet("192.168.100.2", 1001));mapTmpVariable.emplace(3, Clinet("192.168.100.3", 1002));cout << "size:" << mapTmpVariable.size() << endl;mapTmpVariable.insert(std::pair<int, struct Clinet>(4, Clinet("192.168.100.3", 1002)));cout << "size:" << mapTmpVariable.size() << endl;
}

std::map emplace和insert使用相关推荐

  1. c语言中std::map_在现代C ++中明智地使用std :: map

    c语言中std::map std::map and its siblings(std::multimap, std::unordered_map/multimap) used to be my fav ...

  2. 【C++】17. map []操作符、insert()、emplace()

    1. std::map 的 []操作符 对于 std::map容器来说,调用[]操作符会自动创建一个value为空的键值对 std::map<std::string,int> name_a ...

  3. 【c++】8.map和vector容器查找、删除指定元素、emplace、insert

    1.查找与删除 vector 和 map 容器中指定元素 vector 查找或删除vector的指定元素"123" 方法1:使用迭代器 不同于map(map有find方法),vec ...

  4. 【c++】映射表std::map

    文章内容为网络搜集内容 std::map 映射表(Map)容器是一个按特定顺序存储以键值对组合而成的元素的关联容器 // <map> template < class Key,cla ...

  5. C++ STL map emplace()和emplace_hint()(深入了解,一文学会)

    C++ STL Map模板类中除了 insert() 方法 还提供了 emplace() 和 emplace_hint() 成员函数,也可以实现向 map 容器中插入新的键值对.本节就来讲解这 2 个 ...

  6. C++ 那些被遗漏的细节2 map emplace emplace_hint

    说明 主要关注map的emplace.insert的返回类型 std::pair<iterator, bool> 和 emplace_hint的返回类型iterator. template ...

  7. std::map只修改不用加锁

    std::map创建并初始化之后,不会再有任何的insert和delete键值对的操作.仅有的操作就是不同的线程会访问不同的key,对key对应的value进行修改,请问这种情况下,是否需要加锁? 不 ...

  8. std::map用法总结

    给出了map的基本用法如插入.查找.删除.遍历等等,同时告诉你如何实现双键map,包括 (1) 只有两个键都匹配才命中目标 (2) 两个键中任意一个匹配就命中目标 可以扩展到多键 (一) 介绍特点:1 ...

  9. std::map用法

    std::map用法 STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用. 在STL模板类中,用于线性数据存储管理的类主要有vector, list, map ...

最新文章

  1. Java数据结构与算法:堆
  2. 在Python中变量名这样写,就是给自己挖坑
  3. python-install-package-C++编译器问题---03
  4. 深度学习2.0-33.BatchNorm
  5. 计算机职称评定认可增刊吗,核心期刊增刊评定职称可以用吗?
  6. 省市区的行政区域数据2021(国家统计局)
  7. 苹果手机怎么查看已连接wifi密码_手机连不上wifi显示已保存怎么回事【原因介绍】...
  8. 微信打开h5链接,缓存未清除解决办法
  9. C++哈利波特代码(下)
  10. 全员营销实施困难,是因为你没有这个神器
  11. hive 安装mysql报错_hive的元数据存储在mysql后,报错的解决方法
  12. python京东抢购手机攻略_Python实现自动上京东抢手机
  13. 牛客练习赛52 B Galahad (树状数组)
  14. java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  15. 京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口
  16. win7资源服务器未响应,Win7资源管理器未响应怎么办 试试这个方法 - 驱动管家
  17. 校园认证客户端弹出UAC窗口解决办法-修改注册表
  18. 【日本IT】连自社開発、受託企業、SES都不知道,你就敢赴日干IT?
  19. LCD的Cell制程
  20. 用Java画城堡_一分钟简笔画—跟我一起画城堡 大师来详解

热门文章

  1. 转:从个人成长转变为组织成长
  2. tranform知多少
  3. python中plt.legend_matplotlib.pyplot绘制legend、特殊符号、设置坐标轴Ticks
  4. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十四)-任意文件下载漏洞(2)
  5. 三极管等效、互换、自锁电路
  6. 【机器学习】关于注意力模型(Attention-model)的理解和应用
  7. linux只认64G内存,怎样让32位的windows和linux系统支持64G内存
  8. cmd命令进入文件夹,回到上一级,打开文本,显示文件列表。
  9. 太卷了, 某公司把自家运营多年的核心系统完全开源了....
  10. rk3568 点亮HDMI