どうも、ちょげ(@chogetarou)です。
配列(array)を反転して逆順にする方法を紹介します。
方法

配列(array)を反転して逆順にする方法は、2つあります。
forループ
ひとつは、forループを使う方法です。
まず、配列を要素数の半分でループします。
そして、for文の処理で、「ループ変数のインデックスの要素」と「要素数を1とループ変数で引いた値のインデックスの要素」を入れ替えます。
//myArray = 対象の配列
int count = size(myArray); //配列の要素数を取得
for (int i = 0; i < count / 2; i++) { //配列の要素数の半分でループ
//要素を入れ替える
int temp = myArray[i];
myArray[i] = myArray[count - i -1];
myArray[count - i - 1] = temp;
}
上記のforループは、配列を反転して逆順にします。
使用例
#include <iostream>
using namespace std;
int main(void){
int numbers[6] = {1, 2, 3, 4, 5, 6};
int count = size(numbers);
for (int i = 0; i < count / 2; i++) {
int temp = numbers[i];
numbers[i] = numbers[count - i -1];
numbers[count - i - 1] = temp;
}
for (int i = 0; i < count; ++i) {
cout << numbers[i] << " ";
}
}
出力:
6 5 4 3 2 1
reverse()
もうひとつは、reverse()を使う方法です。
まず、reverse()を呼び出します。
reverse()の第1引数にbegin()、第2引数にend()を指定します。
begin()とend()の引数に対象の配列を指定します。
//myArray = 対象の配列
reverse(begin(myArray), end(myArray));
上記のreverse()は、配列を反転して逆順にします。
使用例
#include <iostream>
using namespace std;
int main(void){
int numbers[6] = {1, 2, 3, 4, 5, 6};
reverse(begin(numbers), end(numbers));
for (int i = 0; i < size(numbers); ++i) {
cout << numbers[i] << " ";
}
}
出力:
6 5 4 3 2 1
まとめ
配列(array)を反転して逆順にする方法は、次の2つです。
- forループを使う方法
- reverse()を使う方法
reverse(begin(numbers), end(numbers));
コメント