zoukankan      html  css  js  c++  java
  • std::map 的swap错用

        map<int, shared_ptr<int>>map_test;
        shared_ptr<int> tmp_1 = make_shared<int>(1);
        map_test[1] = tmp_1;
    
        shared_ptr<int> tmp_20 = make_shared<int>(20);
        shared_ptr<int> tmp_vice1 = map_test[1];
    
        tmp_vice1.swap(tmp_20);

    今天错误的使用了swap 如以上代码,本意是想改变map_test[1]所对应的值为20

    可是这样使用后 是把tmp_vice1指向了原先tmp_20所管理的内存,tmp_20指向了 tmp_1管理的内存 而不是内存的相互交换!

    正确使用直接用map_test[1] 和tmp_20 swap即可

  • 相关阅读:
    博客园如何运行代码
    视觉差
    h5 播放器 -3
    播放器 视频 音频 -1
    游戏 保卫萝卜
    跟踪算法
    走口字

    联动日历
    jq 抽奖
  • 原文地址:https://www.cnblogs.com/wangshaowei/p/11042452.html
Copyright © 2011-2022 走看看