首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类对象储存在vector中的储存形式有关问题

2012-09-24 
类对象储存在vector中的储存形式问题现在有一个类,需要使用vector储存该类的若干实例。例如如下代码:C/C++

类对象储存在vector中的储存形式问题
现在有一个类,需要使用vector储存该类的若干实例。例如如下代码:

C/C++ code
class A{    vector<int> member;    //construction function;}//use thisvector<A> Avector;while (condition) {    A newA();    Avector.push_back(newA);}//or thisvector<A*> Aptrvector;while (condition) {    A* newAptr = new A();    Aptrvector.push_back(newAptr);}

其中使用两种方式,一种是直接用vector储存新建的类的实例,另一种是储存类的实例的指针,通过new来分配类的空间。
类的实例需要在程序执行整个过程中调用。
请问以上两种方式,哪种实现更好一些?

[解决办法]
第一种最好实现自定义拷贝构造,否则深浅拷贝的问题可能是潜在bug
[解决办法]
如果是个巨类的话,可以采用第二种
[解决办法]
性能可接受的情况下,存储对象而不是指针,避免潜在的内存问题
[解决办法]
删除的代价很大, 谨慎.

热点排行