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

可书上没提及为什么

请您帮忙解释

谢谢

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

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

应该是有上下文的

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

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



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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐