【发布时间】:2015-04-29 01:10:29
【问题描述】:
std::vector::pop_back 是将其中对象的指针设置为nullptr 还是只是删除对象?
我看到我的向量的大小减小了,所以对象显然被删除了,但我想知道指针是否设置为 nullptr 还是我必须手动执行?
编辑:我根据包含指针的向量提出了这个问题。示例:vector<Bitmap*>。
【问题讨论】:
-
除了 size 成员减 1 之外,很可能什么也没有发生。向量的大小和向量的容量是 2 个不同的东西。
-
你在说什么指针?听起来像 Java...
-
你在说什么指针?如果您的向量包含指针,则在删除它们时不会对它们执行任何操作。如果它包含涉及指针的对象,则取决于其析构函数的作用。
-
你为什么在乎?符合标准的程序将无法区分(您不打算访问索引超出范围的元素,是吗)?您“必须手动执行”是什么意思?谁在逼你?
-
这个问题到底是关于什么的?从向量中弹出的对象立即被销毁。它不复存在。该对象内的某些“指针”是否设置为空有什么区别?反正你永远不会知道,因为对象不再存在。