一般來說,爲了效率和速度的目的,緩存一個結束迭代器(特別是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;
}
在什麼情況下會使最終值失效?將從容器中刪除原因結束被取消全部 STL容器還是隻是一些?
首先問自己,你的分析器告訴你std :: vector :: end()的調用花費了大量的處理時間嗎? –
daramarak
2010-06-21 12:34:50