對於關聯容器,++運算符可以發送迭代器超過集合的末尾嗎?STL映射迭代器可以通過遞增出界嗎?
實施例:
map<UINT32, UINT32> new_map;
new_map[0] = 0;
new_map[1] = 1;
map<UINT32, UINT32> new_iter = new_map.begin();
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
在這段最後,不new_iter == new_map.end(),或者它在大未知結束?
注:我知道這是搞砸了,而不是做事情的方式。我正在解決一些WTF公司代碼。
那麼你編譯它,並檢查它是否將在最後new_map.end()?如果您不確定,可能是最簡單的方法來回答這個問題。 – Goz 2009-08-24 21:09:36
@Goz:不,這隻會回答一個實施正在做什麼。 – sbi 2009-08-24 21:11:59
可能的重複[如果增加迭代器等於STL容器的結束迭代器會發生什麼情況](https://stackoverflow.com/questions/1057724/what-happens-if-you-increment-an-iterator這就是等於最終迭代器的一個) – Raedwald 2017-11-29 10:56:24