[C++]for_eachを使って配列を逆順でループするには?

C++

どうも、ちょげ(@chogetarou)です。

for_eachを使って配列(array)を後ろからループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

for_eachを使って配列(array)を逆順でループするには、rbegin()とrend()を使います。

まず、for_eachを呼び出します。

次に、for_eachの第1引数にrbegin()、第2引数にrend()を指定します。

for_eachの第3引数に、引数1つの関数を指定します。

関数の{}内に、ループ処理を指定します。
(関数の引数で、配列の要素を取得)

そして、rbegin()とrend()の両方の引数に、配列を指定します。

//T=要素の型, myArray=対象の配列
for_each(rbegin(myArray),
            rend(myArray), 
            [] (T x) {
                //ループ処理
                //引数で要素を取得
            });

上記のfor_eachは、配列を逆順でループします。

rbegin()は逆順のイテレータの最初の要素(通常のイテレータの最後の要素)、rend()は逆順のイテレータの最後の要素(通常のイテレータの先頭の要素)を取得します。

使用例

#include <iostream>
using namespace std;

int main(void){
    
    int nums[6] = { 1, 2, 3, 4, 5, 6 };
    
    for_each(rbegin(nums),
            rend(nums), 
            [] (int x) {
                cout << x << endl;
            });
    
    return 0;
}
出力:
6
5
4
3
2
1

コメント

タイトルとURLをコピーしました