std::map 的swap错用
map<int, shared_ptr<int>>map_test;
shared_ptr<int> tmp_1 = make_shared<int>();
map_test[] = tmp_1; shared_ptr<int> tmp_20 = make_shared<int>();
shared_ptr<int> tmp_vice1 = map_test[]; tmp_vice1.swap(tmp_20);
今天错误的使用了swap 如以上代码,本意是想改变map_test[1]所对应的值为20
可是这样使用后 是把tmp_vice1指向了原先tmp_20所管理的内存,tmp_20指向了 tmp_1管理的内存 而不是内存的相互交换!
正确使用直接用map_test[1] 和tmp_20 swap即可
std::map 的swap错用的更多相关文章
- C++ std::map
std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...
- Std::map too few template arguments
在上述的代码中,红色波浪线的部分编译的时候报错: error C2976: 'std::map' : too few template arguments 换成std::map<std::str ...
- std::map自定义类型key
故事背景:最近的需求需要把一个结构体struct作为map的key,时间time作为value,定义:std::map<struct, time> _mapTest; 技术调研:众所周知, ...
- C++ | 使用const std::map,map::[]时遇到的一个bug
原函数简化后如下: void fun(const map<int,vector<int>> &mp, int index) { for (auto tmp : mp[i ...
- std::map使用结构体自定义键值
使用STL中的map时候,有时候需要使用结构题自定义键值,比如想统计点的坐标出现的次数 struct Node{ int x,y; }; ...... map<Node,int>mp; m ...
- C++ std::map用法简介
#include "map" //引入头文件 初始化: std::map <int, std::string> _map1; //初始化 //c++11中引入的,可以直 ...
- std::map用法
STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用. 在STL模板类中,用于线性数据存储管理的类主要有vector, list, map 等等.本文主要 ...
- C++ std::map::erase用法及其陷阱
1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map<string,string> mapTest; typedef map<string ...
- std::map
1.例: map<int,string> m_mapTest; m_mapTest.insert(make_pair(1,"kong")); m_mapTest.ins ...
随机推荐
- UUID相同导致的网络连接问题
目录 场景 思路 解决过程 提升虚拟机配置 直连交换机 最终解决方案 总结 场景 有同事从公司寄了一台服务器到现场,用来安装数据库.缓存等组件供开发使用.到了之后,连接电源.网线,设置IP,用vSph ...
- 01trie
前置芝士 二进制,tire 平衡树 一种数据结构,来维护一些数,需要支持以下操作: 1.插入 xx 数 2.删除 xx 数(若有多个相同的数,因只删除一个) 3.查询 xx 数的排名(排名定义为比当前 ...
- ZOJ Problem Set - 1005
注意,条件:B>=C .应考虑B=C的情况. #include<iostream> using namespace std; int A,B,C; void jugs(int a,i ...
- speedtest-cli 命令
speedtest-cli是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试,项目地址:https://github.com/sivel/spee ...
- JAVA实验报告及第七周总结
JAVA第六周作业 实验报告五 第一题 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图 ...
- VirtualBox本地虚拟机常见问题
SSH连接本地虚拟机配置 https://www.jianshu.com/p/d59ed9f226d1 开启双向复制https://blog.csdn.net/wcx1293296315/articl ...
- shell 数组长度
Shell 数组操作方式 数组元素个数 ${#array[@]} 数组的所有元素 ${array[*]} 字符串长度 ${#str} 1.获取数组元素的个数: array=(bil ...
- Spring5的总体架构图
Spring5的主体架构图 主要是四大部分:Web.Data Access/Integration.Core Container.中间层,具体见下图:
- # codeblocks 使用技巧+伪单文件编译
codeblocks 使用技巧+伪单文件编译 shift+F2打开和隐藏左侧工作空间 F2 打开和隐藏下面控制台 CTRL+Shift+c 注释,CTRL+Shift+x取消注释 view->p ...
- composer设置autoload自己的代码
"autoload": { "psr-4": {"": ["App/base", "App/src/contr ...