gpt4 book ai didi

c++ - 指向 STL 容器的指针安全吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:32 26 4
gpt4 key购买 nike

如果我做一个 unique_ptr 会怎样指向一个STL容器的实例如下?这段代码安全吗?

unique_ptr< vector<int> > p1( new vector<int> );

这不会导致 vector<int> 的析构函数吗?被调用两次,因为 vector<int>本身和 unique_ptr两者都试图清理内存 vector<int>到目前为止已经获得?这会导致未定义的行为吗?或者编译器是否以某种方式知道 vector<int>为了 unique_ptr 已经释放了它的内存并且不再调用析构函数超出范围?

这只是为了理解,如果有人愚蠢到这样做,会不会很危险?

最佳答案

unique_ptr< vector<int> > p1( new vector<int> ); unique_ptr随叫随到 deletevector 上.vector 的析构函数然后将释放自己分配的内存。所以它是安全的。

但是vector<int>足够。我没有看到你想要 unique_ptr< vector<int> > 的情况.

关于c++ - 指向 STL 容器的指针安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113990/

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