gpt4 book ai didi

c++ - 是否需要将空指针分配给 std::auto_ptr

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

之前,我有如下代码。

double* a[100];
for (int i = 0; i < 100; i++) {
// Initialize.
a[i] = 0;
}

a 数组初始化为 0 的目的是,当我迭代删除 a 的元素时,即使没有为a 的元素。

for (int i = 0; i < 100; i++) {
// Fine.
delete a[i];
}

现在,我想利用 auto_ptr,避免手动调用删除。

std::auto_ptr<double> a[100];
for (int i = 0; i < 100; i++) {
// Initialize. Is there any need for me to do so still?
a[i] = std::auto_ptr<double>(0);
}

我在想,是否需要我初始化auto_ptr来保存一个空指针?我的感觉是没有。我只想确认这一点,这样就没有任何问题了。

最佳答案

C++03规定auto_ptr的构造函数如下:

explicit auto_ptr(X* p =0) throw();             // Note the default argument

Postconditions: *this holds the pointer p.

这意味着下面是完全合式的。无需初始化

auto_ptr<int> a = auto_ptr<int>();

关于c++ - 是否需要将空指针分配给 std::auto_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664145/

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