c++ unique_ptr在它所指向的对象进行内存重新分配后的行为如何?

x7rlezfr  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(97)

假设我有以下代码:

class container {
public:
    container() {
        mContainer = std::make_unique<std::map<std::string, std::string>>();
    }
    void add(const string& k, const string& v) {
        (*mContainer)[k] = v;
    }
...
private:
    std::unique_ptr<std::map<std::string, std::string>> mContainer;
}

我的问题是:这个mContainer在它所指向的Map进行内存重新分配后仍然有效吗?

sqxo8psd

sqxo8psd1#

std::unique_ptr被设计为托管对象的所有者,因此它被称为“唯一”。托管对象对自己的内部结构做什么并不重要。只要 you 不修改指向它的指针,它将保持有效。

相关问题