どうも、ちょげ(@chogetarou)です。
for文を使ってVectorを後ろからループする方法を紹介します。
方法

for文を使ってVectorを逆順でループするには、rbegin()とrend()を使います。
まず、for文のループ変数をVectorから呼び出したrbegin()の値で初期化します。
for文の終了条件にループ変数がVectorから呼び出したrend()の値でないことを指定し、ループの最後に行う処理でループ変数を「+1」します。
そして、for文の{}内にループ処理を指定します。
ループ処理では、Vectorの要素をループ変数の参照で取得します。
//myVec = 対象のvector
for (auto i = myVec.rbegin(); i != myVec.rend(); ++i) {
//ループ処理
}
上記のfor文は、Vectorを逆順でループします。
https://cplusplus.com/reference/vector/vector/rbegin/
https://cplusplus.com/reference/vector/vector/rend/
使用例
#include <iostream>
#include <vector>
using namespace std;
int main(void){
vector<int> nums = { 1, 2, 3, 4, 5, 6 };
for (auto i = nums.rbegin(); i != nums.rend(); ++i) {
cout << *i << " ";
}
return 0;
}
出力:
6 5 4 3 2 1
コメント