クラスのインスタンスのポインターを作成する必要がありますが、プログラムは、作成するポインターの数をコンパイル時に知りません。削除については、ポインターをベクトルに格納してから、それらを 1 つずつ削除することを検討していました。スマート ポインターを使用すると、よりクリーンな方法になりますか? また、スマート ポインターを使用したくない場合、この vector の使用はクリーンと見なされますか?
最小コード:
#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;
}
}