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

C++

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

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

スポンサーリンク

方法

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

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

まず、ループ用の変数を引数に配列を指定したrbegin()の値で初期化します。

whileの終了条件に、「ループ用の変数」が「引数に配列を指定したrend()の値」ではないことを指定します。

次に、whileの{}内にループ処理を指定します。

ループ処理では、ループ変数の参照で配列の要素を取得します。

最後に、whileのループ処理の最後で、ループ変数の値を「+1」します。

//T=要素の型, myArray=対象の配列
auto i = rbegin(myArray);
while (i != rend(myArray)) {
    //ループ処理
    ++i;
}

上記のwhileは、配列(array)を逆順でループします。

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

使用例

#include <iostream>
using namespace std;

int main(void){
    
    int nums[6] = { 1, 2, 3, 4, 5, 6 };
    
    auto i = rbegin(nums);
    while (i != rend(nums)) {
        cout << *i << endl;
        ++i;
    }
    
    return 0;
}
出力:
6 5 4 3 2 1 

コメント

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