3
對於std::for_each
調用,兩個迭代器都是最終迭代器是合法的嗎?例如,for_each中的端到端
std::vector<int> some_ints;
std::for_each(ints.end(), ints.end(), [&](int i) {
std::cout << i;
});
對於std::for_each
調用,兩個迭代器都是最終迭代器是合法的嗎?例如,for_each中的端到端
std::vector<int> some_ints;
std::for_each(ints.end(), ints.end(), [&](int i) {
std::cout << i;
});
是的,這是完全合法的,併產生一個空的範圍。結果將是什麼都沒有發生,但行爲已經很好地定義了。
下面是從SGI參考頁上的迭代器相關的報價和他們的範圍使用(Documentation)
大多數算法都表示不能在一個迭代器方面,而且在一系列的迭代器的條件;符號[first,last)表示從第一個到最後一個,但不包括最後一個的所有迭代器。請注意,範圍可能爲空,即第一個和最後一個可能是相同的迭代器。