在以下代码中,当结构S被销毁时,指针被重置.我更喜欢结构值的向量而不是指针.有没有办法添加到矢量而不会暂时被破坏?
int* pi = nullptr;
struct S
{
S(int* i) { pi = i; }
~S() { pi = nullptr; }
};
int main(int argc, char* args[])
{
int i = 5;
std::vector<S> sVector;
sVector.push_back(S(&i));
std::cout << pi << std::endl; // outputs 0 instead of address
return 0;
}
Run Code Online (Sandbox Code Playgroud)