gpt4 book ai didi

c++ - 在 C++ 中添加元素并清除指针 vector

转载 作者:太空狗 更新时间:2023-10-29 19:39:56 25 4
gpt4 key购买 nike

我想向 vector<Node*> 添加 2 个元素然后清除所有元素并释放内存。
这段代码是否以正确的方式做到了这一点?

#include <stdlib.h>
#include <iostream>
#include <vector>

using namespace std;

class Node {
public:
int value;
// ...and some other fields and methods...
};

int main(int argc, char** argv) {
Node* n = new Node;
n->value = 20;
vector<Node*> v;
v.push_back(n);
n = new Node;
n->value = 52;
v.push_back(n);
for (vector<Node*>::iterator i = v.begin(); i != v.end(); i++) {
cout << (*i)->value << endl;
delete *i;
*i = NULL;
}
v.clear();
return (EXIT_SUCCESS);
}

最佳答案

我觉得还不错。我会(主观地)更改一些内容:

*i = NULL;  // This is unnecessary.

然后我会避免重用 n(实际上,我会完全避免它):

v.push_back(new Node);
v.back()->value = 20;
v.push_back(new Node);
v.back()->value = 52;

此外,您可能需要考虑使用智能指针来跟踪您的内存。参见 shared_ptrptr_vector .

关于c++ - 在 C++ 中添加元素并清除指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com