相关疑难解决方法(0)

删除指针的向量

我需要创建一个类实例的指针,程序在编译时不知道我将创建多少指针.为了删除,我正在考虑将指针存储在一个向量中,然后逐个删除它们.智能指针的使用会更清晰吗?如果一个人不想使用智能指针,那么这种向量的使用会被认为是干净的吗?

最低代码:

#include <vector>
using namespace std;

class Foo {
public:
    Foo();
};
Foo::Foo(){}
void createFooVector(int nb, std::vector<Foo*> &v){
    for(int i=0;i<nb;i++){
        Foo* f = new Foo();
        v.push_back(f);
    }
}
int main(int argc, char *argv[]){
    std::vector<Foo*> v;
    createFooVector(5,v); 
    while (!v.empty()){
        Foo* f = v.back();
        v.pop_back();
        delete f;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers smart-pointers vector delete-operator

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

delete-operator ×1

pointers ×1

smart-pointers ×1

vector ×1