nki*_*int 1 c++ pointers vector delete-operator
这不是一个实际问题,但它只是为了教育好奇心.
在一些论坛中,我刚刚发现了这段代码:
std::vector<MyClass*> myvec;
for(unsigned int i = 0; i < 100; ++i) {
myvec.push_back(new MyClass( foo1 ));
}
// somewhere in the code inside a particular if statement
MyClass* replacement = new MyClass( foo2 );
delete myvec[0];
myvec[0] = replacement;
Run Code Online (Sandbox Code Playgroud)
我有一个MyClass实例的向量,在代码中的某处我必须用其他实例替换某些实例.
为什么我要拨打删除?更换指针不够吗?