假设我有以下代码:
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进行内存重新分配后仍然有效吗?
1条答案
按热度按时间sqxo8psd1#
std::unique_ptr
被设计为托管对象的所有者,因此它被称为“唯一”。托管对象对自己的内部结构做什么并不重要。只要 you 不修改指向它的指针,它将保持有效。