2011-08-16 23 views
3

std::for_eachコールでは、両方のイテレータを終了イテレータにするのは合理的ですか?たとえば、for_eachで終わりに終わり

std::vector<int> some_ints; 
std::for_each(ints.end(), ints.end(), [&](int i) { 
    std::cout << i; 
}); 

答えて

3

はいこれは完全に合法であり、空の範囲を生成します。結果は何も起こらないが、その行動は明確に定義されている。ここ

ほとんどアルゴリズムがない単一イテレータの観点からではなく、イテレータの範囲で表現されるイテレータと範囲としてのそれらの使用にSGIリファレンスページから関連引用(Documentation

あります。表記法[first、last)は、最初から最後までのすべてのイテレータを指します。範囲は空でもかまいません。つまり、firstとlastは同じイテレータである可能性があります。

関連する問題