假设有一个vector类型的指针,比如vector<sub_table>* pvector;

pvector=new vector<sub_table>;

然后就是sub_table *p=new sub_table; 然后给*p初始化,然后pvector->push_back(*p);

注意:这里当我用delete pvector; 直接释放掉的时候,

这里的p指针指向的内存有没有释放,如果没有的话用pvector->clear();

可不可以,如果还不行的话怎么办?

这里sub_table是一个结构体。

还有如果vector中存的是一个一个的指针的话,他们它们各有自己new空间的话,这样的vector内存怎么释放,要一个一个的遍历才能释放吗,是不是这样的话,vector::clear();都不行了啊?

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

对于vector中sub_table对象,使用clear()是可以进行清理的。

 sub_table *p=new sub_table; 

这里的p,在你用完之后,要使用delete p;

pvector=new vector<sub_table>; 

pvector也需要delete pvector;