在C++11中,所有元素都有兩個循環(基於for和for_each的範圍)。有沒有什麼理由比另一方更喜歡它,或者是否有一種更適合的情況?首選標準用途:基於範圍或for std :: for_each
for (auto& elem: container) {
// do something with elem
}
std::for_each(container.begin(), container.end(),
[](Elem& elem) {
// do something with elem
});
我的想法是,首先是簡單的,類似於範圍在其他語言中基於循環而第二也適用於那些不完整的集裝箱序列和第二個是更類似於其他std
-algorithms。
我很好奇實際正確使用基於範圍的方法,所以請看我的問題http://stackoverflow.com/questions/9994789/proper-style-for-declaration-in -range-based-for – Potatoswatter 2012-04-03 13:57:18
我添加了一個簡單的'for_each'示例。我以爲我看到一個消息要求一個,但我不太確定... – juanchopanza 2012-04-03 14:09:05
@juanchopanza:我問了一個基於拉姆達的,但我刪除它,因爲在我發佈評論時,我閱讀Potatoswatter的評論,即查詢lambda是不可能的。不過,這是一個很好的例子,說明for_each可能更適合。 – stefaanv 2012-04-03 14:13:04