清除传染媒介元素传染媒介

时间:2013-03-06 20:28:24

标签: c++

我有一段需要定义vector向量的代码。我在循环广告中使用它们每次填充它,片段看起来像:

vector < vector<T> > buckets;

for ( i = 0 -> N) {
  buckets.clear();
  ....
}

我的问题是在对.clear()执行bucket操作之后,在下一次迭代中我看到旧值存在,这是常见的吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

clear可能只是将“使用的条目数设置为零”[1],因此旧条目仍可在向量中读取。如果您不使用size()来获取新大小,而是使用其他方法,则值仍然存在。

clear确实可能确实完全删除了内容,而且它不再可访问。在这种情况下,如果您尝试使用某些内容,您的程序将崩溃。

[1]是的,如果你想要细节,它确实“比”更多,我正在简化它。例如,它将向析构函数调用向量中的元素,但它仍然只是“东西仍然存在”的情况,只是不再被视为有效。