gpt4 book ai didi

c++ - 我是否必须在删除之前清除 std::vector

转载 作者:太空狗 更新时间:2023-10-29 23:32:29 24 4
gpt4 key购买 nike

到目前为止,在删除 vector 之前我一直使用 vector::clear() 。但有必要吗? vector::clear() 函数不是在析构函数中调用了吗?

// Consider I have this vector
std::vector<uint32_t>* myVector = new std::vector<uint32_t>(50);

... // vector gets filled

myVector->clear(); // <-- redundant??
delete myVector;
myVector = nullptr;

最佳答案

不,std::vector 的所有元素都会在 std::vector 销毁时被销毁,因此使用 clear 是多余的。您可以查看 std::vector::~vector here 的文档.

此外,通常不需要像您在问题中所做的那样动态分配 vector - 只需通过以下方式初始化

std::vector<uint32_t> myVector;
//...

then myVector 及其所有元素在超出范围时将被销毁。

关于c++ - 我是否必须在删除之前清除 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025713/

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