【发布时间】:2018-04-30 14:24:33
【问题描述】:
我知道这篇文章可能是重复的,但我能找到的答案不清楚。
std::vector<EWindow> windows;
void closeWindow(EWindow* window);
这些是我的函数,我想从向量 windows 中删除指针 EWindow*。
C++ Remove object from vector 解释如何删除对象而不是指针。
【问题讨论】:
-
你
windows是EWindow的向量,而不是EWindow*。如果要包含指针,请使用std::vector<EWindow*> windows。此外,根据您的需要,最好使用智能指针,std::unique_ptr或std::shared_ptr。 -
你可以搜索并删除对应的
EWindow,但是后面的呢?所有指向它们的指针都会被弄乱…… -
其实EWindow是一个更容易创建窗口的对象(就像Qt一样)我应该使用指针还是智能指针?