[C++]配列を降順に並び替えるには?

C++

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

配列(array)の要素を大きい順にソートする方法を紹介します。

スポンサーリンク

方法

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

配列(array)の要素を降順に並び替えるには、std::sort()を使います。

まず、algorithmをインクルードします。

#include <algorithm>

次に、std::sort()を呼び出します。

std::sort()の第1引数に配列のイテレータの先頭、第2引数に配列のイテレータの末尾を指定します。

そして、std::sort()の第3引数にgreater<>()を指定します。

//myArray=対象の配列
std::sort(std::begin(myArray), std::end(myArray), std::greater<>());

上記のstd::sort()は、配列の要素を降順に並び替えます。

sort()の第3引数に、「第1引数 > 第2引数」を返す関数を指定して、降順に並び替える方法もあります。

sort(begin(myArray), end(myArray), [](auto const &i, auto const &j) { return i > j; });

使用例

#include <iostream>
#include <algorithm>
using namespace std;

int main(void){
    
    int nums[6] = { 11, 2, 8, 20, 7, 4 };
    
    sort(begin(nums), end(nums), greater<>());
    
    for(int item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
20
11
8
7
4
2

コメント

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