vector容器中是否应该放指针?解决方法

vector容器中是否应该放指针?
今天在看《C++编程规范》的时候,看到里面提到一条,其中提及:
不要在vector容器中存储指针类型,如vector<MyClass*> v;
如果要存储指针类型使用list list<MyClass*> lst;

可书上没提及为什么

请您帮忙解释

谢谢

------解决方案--------------------
应该是有上下文的
------解决方案--------------------
vector完全可以存放指针
只是往vector中添加元素时都是拷贝的元素副本
所以相当于指针存了2份。不安全
------解决方案--------------------
因为Vector存储的是拷贝,而对于指针来说,多一个备份就意味着多一份危险。
------解决方案--------------------
对于那些严谨的人,这可以,因为 STL 容器允许。
对于那些不严谨的人,最好不要这样。

那些规则,只是告诉你,最好不要这样,如果你不够严谨。
------解决方案--------------------
探讨

应该是有上下文的

------解决方案--------------------
建议不要在容器里面放指针
容易出问题 不好管理
------解决方案--------------------
如果你的类中还有指针,那么容器中最好用来这个类的指针,因为如果是存实例的拷贝的话有可能会出现问题
或者你这个类非常大,拷贝这个类开销大,这时候存指针

前提是,保证不犯错,谨慎



文章来源:http://www.myexception.cn/cpp/364520.html

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值