今天发现一个情况,对容器map 进行 std::move 之后,原map被清空了。

    map<int, int> tmp;
    tmp[1] = 1;
    tmp[2] = 2;
    tmp[3] = 3;
    tmp[4] = 4;
    tmp[5] = 5;
    map<int, int> tmp1;
    tmp1[1] = 3;
    tmp1[2] = 3;
    list<map<int, int>> lmap;
    lmap.push_back(std::move(tmp));
    lmap.push_back(tmp1);
 
    cout<<" " <<tmp.size()<<" "<<tmp1.size()<<endl; // 0 2
 
   tmp 被清空,内存直接拷贝到了lmap;
 
  
这篇文章里介绍的很详细,其中有一段:
 
注意,标准库对象支持moved from的左值在moved 之后它的对象原值是有效的(可以正常析构),但是是unspecified的,可以理解为空数据,但是这个对象的其他方法返回值不一定是0,比如size().所以,moved from 之后的对象最好还是不要使用吧?(如有不正确理解,请告知)
 
所以 不要使用。

最新文章

  1. Struts2的基本流程的详细介绍
  2. openssl HeartBlood
  3. 【WPF学习日记】——Window的DataContext绑定ViewModel
  4. Template、ItemsPanel、ItemContainerStyle、ItemTemplate
  5. devm_kzalloc and kmalloc
  6. Codevs 1081 线段树练习 2
  7. CentOS 7 快速初始化脚本 for MySQL
  8. CentOS 6.5 简单编译安装Nginx
  9. Spark应用【根据新df更新旧df】
  10. mysql 记录根据日期字段倒序输出
  11. C#访问MySQL数据库的方法
  12. 05: greenlet:轻量级的并发编程
  13. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解
  14. 【Acm】算法之美—Crashing Balloon
  15. linux批量修改文件名
  16. Java web 强制301跳转
  17. hihocoder1580 Matrix
  18. DATA 转 16 进制
  19. 如何ping测有端口的网站
  20. ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续

热门文章

  1. JZOJ 2645. 【NOIP2011模拟11.1】钓鱼
  2. Vulhub 漏洞学习之:ActiveMQ
  3. 空间数据库中ST_开头的来由
  4. 测开-面试题-OS、Linux、算法、其他
  5. 概率生成函数(PGF)简记
  6. think php3 中接入protobuf(一)
  7. Tkinter模块的使用【转】
  8. CodeGym自学笔记08——交互对象
  9. Linux 部署apache2.4
  10. Redis设置开机自启动