vector容器中是否应该放指针?解决方法
vector容器中是否应该放指针?
今天在看《C++编程规范》的时候,看到里面提到一条,其中提及:
不要在vector容器中存储指针类型,如vector<MyClass*> v;
如果要存储指针类型使用list list<MyClass*> lst;
可书上没提及为什么
请您帮忙解释
谢谢
------解决方案--------------------
应该是有上下文的
------解决方案--------------------
vector完全可以存放指针
只是往vector中添加元素时都是拷贝的元素副本
所以相当于指针存了2份。不安全
------解决方案--------------------
因为Vector存储的是拷贝,而对于指针来说,多一个备份就意味着多一份危险。
------解决方案--------------------
对于那些严谨的人,这可以,因为 STL 容器允许。
对于那些不严谨的人,最好不要这样。
那些规则,只是告诉你,最好不要这样,如果你不够严谨。
------解决方案--------------------
探讨
应该是有上下文的
------解决方案--------------------
建议不要在容器里面放指针
容易出问题 不好管理
------解决方案--------------------
如果你的类中还有指针,那么容器中最好用来这个类的指针,因为如果是存实例的拷贝的话有可能会出现问题
或者你这个类非常大,拷贝这个类开销大,这时候存指针
前提是,保证不犯错,谨慎
文章来源:http://www.myexception.cn/cpp/364520.html
vector容器中是否应该放指针?解决方法相关推荐
- docker 容器中不支持中文的解决方法
最近的项目中Docker容器中生成的日志文件是中文名字,但是文件名是????.txt 进入容器内部: docker exec -t -i 容器名 /bin/bash 查看容器的语言环境: [root@ ...
- vector容器中erase(删除)的使用
erase函数可以用于删除vector容器中的一个或者一段元素,在删除一个元素的时候,其参数为指向相应元素的迭代器,而在删除一段元素的时候,参数为指向一段元素的开头的迭代器以及指向结尾元素的下一个元素 ...
- C++:vector容器中使用pair该如何访问成员
(显然,vector 的索引从 0 开始,这和普通数组一样.通过使用索引,总是可以访问到 vector 容器中现有的元素.) 如果是简单的访问vector里边的成员的话,是这样的: #include ...
- vector容器中数据的排序方法
前言 在项目中经常会遇到对vector容器中数据排序的情况,有时候vector中数据还常常是pair关联容器.此处给出一个使用demo,使用了C++中的lambda表达式. #include" ...
- 计算机组装时遇到的问题,计算机组装及正常维修过程中遇到的问题和解决方法.doc...
<计算机组装及正常维护过程中遇到的问题和解决方法> 指导老师:XXX 班级:XXX 姓名:XXX 学号:XXXX 计算机组装遇到的问题和解决方法 在安装之前要特别注意下面这些事项:第一.防 ...
- #arcgis 中无法连接mdb数据库解决方法
#arcgis 中无法连接mdb数据库解决方法 最近看到部分人使用arcgis过程中出现无法连接mdb数据库或者是无法创建mdb数据.具体出现如图所示情况:连接到数据库失败:无法创建新的数据库,权限被 ...
- 在Ubuntu17.04中遇到无法清空回收站解决方法
在Ubuntu17.04中遇到无法清空回收站解决方法 参考文章: (1)在Ubuntu17.04中遇到无法清空回收站解决方法 (2)https://www.cnblogs.com/Chan94/p/9 ...
- hadoop过程中遇到的错误与解决方法
hadoop过程中遇到的错误与解决方法 参考文章: (1)hadoop过程中遇到的错误与解决方法 (2)https://www.cnblogs.com/zhjh256/p/10669881.html ...
- java开发中遇到的问题及解决方法(持续更新)
java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...
- 在使用postman中操作api接口测试403解决方法
在使用postman中操作api接口测试403解决方法 参考文章: (1)在使用postman中操作api接口测试403解决方法 (2)https://www.cnblogs.com/xiaoyayu ...
最新文章
- C++:多线程中的小白(3)线程传参详解
- 密码技术--国密SM3哈希算法及Go语言应用
- python输入输出有问题_使用pySerial从Python获取输入/输出错误
- 常用webshell提权方法总结
- python默认参数只被解释一次_深入讲解Python函数中参数的使用及默认参数的陷阱...
- 数据库表连接总结:等值连接, 自然连接,左外连接,右外连接,内连接,全外连接;
- 有效利用时间12妙招
- Logistic混沌序列加密
- php5.3 gd库,php5.3动态编译gd库 zlib扩展 mcrypt扩展 mysqli扩展
- php用curl调用接口方法,get和post两种方式
- python之禅源代码_python之禅
- android超大屏触摸设备,世界上最大的安卓Android平板电脑具有98英寸的屏幕
- 【附源码】手写一个Ico生成器
- 充电IC驱动调试----移植充电IC bq25601
- SAP 订单结算方式
- 【行业应用案例】区块链+珠宝应用案例分析
- Retinanet论文解读
- excel服务器文件只读,excel只读服务器
- 企业级开发平台的演进
- BT5R3下安装metasploit
热门文章
- 软件性能中几个主要的术语
- Linux 驱动层实现阻塞和非阻塞
- [leetcode]Longest Palindromic Substring
- 转载 java序列化与反序列化
- 使用一个DataContext,还是多个?
- 如何处理Ibatis结合MySQL数据库使用时的事务操作
- WinForm PictureBox删除图片重新加载,显示System.IO.IOException:文件“**.png”正由另一进程使用,因此该进程无法访问此文件
- Just for fun--Linus
- 给页面加上loading加载效果
- Kafka配置1--Windows环境安装和配置Kafka