【发布时间】:2011-03-06 06:36:04
【问题描述】:
一般来说,出于效率和速度目的缓存结束迭代器(特别是 STL 容器)是个好主意吗?比如下面这段代码:
std::vector<int> vint;
const std::vector<int>::const_iterator end = vint.end();
std::vector<int>::iterator it = vint.begin();
while (it != end)
{
....
++it;
}
什么情况下最终值会失效?从容器中擦除是否会导致 end 在 所有 STL 容器或仅部分容器中无效?
【问题讨论】:
-
首先问问自己,您的分析器是否告诉您调用 std::vector
::end() 会花费大量的处理时间?
标签: c++ stl iterator containers