我有一个vector
of unique_ptr
s 指向一个名为 state 的类。当我pop_back()
使用向量调用时,唯一指针会从内存中删除(我认为),但它指向的状态对象永远不会被删除。在删除它指向的对象时,无论是那个还是唯一指针都不会调用析构函数?我所知道的是,当我的唯一指针从向量中删除时,我的析构函数不会被调用。
这是向量:
std::vector< std::unique_ptr<State> > mStates;
我试过了:
mStates.pop_back();
这删除了唯一指针,我认为唯一指针会为我删除状态并调用状态的析构函数,但这并没有发生。顺便说一句,我使用以下方法添加元素:
mStates.push_back();