10

C++11 では、lambda/for_each を使用して、配列を最後から反復するにはどうすればよいですか?

次のことを試しましたが、どちらも無限ループになります。

for_each (end(A), begin(A), [](int i) {
   ....
});

for_each (A.rend(), A.rbegin(), [](int i) {
    ...
});

何か案が?ありがとう。

4

3 に答える 3

2

Boost はreversedという名前の機能を提供します。これは、Yakk の回答で説明されているように、 C++ 11 範囲ベースの for ループで使用できます。

for(int i : reverse(A))
{
  // code
}

また

for(int i : A | reversed)
{
  // code
}
于 2015-12-09T21:50:18.410 に答える