C++でのdequeのソート方法


  1. sort関数を使用する方法: C++の標準ライブラリには、sort関数が用意されています。この関数を使用すると、dequeを昇順または降順にソートすることができます。以下にコード例を示します。

    #include <iostream>
    #include <deque>
    #include <algorithm>
    int main() {
       std::deque<int> myDeque = {4, 2, 1, 3};
    
       std::sort(myDeque.begin(), myDeque.end()); // 昇順にソート
       for (int num : myDeque) {
           std::cout << num << " ";
       }
    
       return 0;
    }

    上記のコードでは、sort関数を使用してdequeを昇順にソートしています。出力結果は「1 2 3 4」となります。

  2. ラムダ式を使用する方法: C++11以降のバージョンでは、ラムダ式を使用してソートのカスタマイズが可能です。以下にコード例を示します。

    #include <iostream>
    #include <deque>
    #include <algorithm>
    int main() {
       std::deque<int> myDeque = {4, 2, 1, 3};
    
       std::sort(myDeque.begin(), myDeque.end(), [](int a, int b) {
           return a > b; // 降順にソート
       });
       for (int num : myDeque) {
           std::cout << num << " ";
       }
    
       return 0;
    }

    上記のコードでは、ラムダ式を使用して降順にソートしています。出力結果は「4 3 2 1」となります。

  3. 自作の比較関数を使用する方法: ソート時の比較方法をカスタマイズするために、自作の比較関数を使用することもできます。以下にコード例を示します。

    #include <iostream>
    #include <deque>
    #include <algorithm>
    bool customCompare(int a, int b) {
       return a < b; // 昇順にソート
    }
    int main() {
       std::deque<int> myDeque = {4, 2, 1, 3};
    
       std::sort(myDeque.begin(), myDeque.end(), customCompare);
       for (int num : myDeque) {
           std::cout << num << " ";
       }
    
       return 0;
    }

    上記のコードでは、自作のcustomCompare関数を使用してdequeを昇順にソートしています。出力結果は「1 2 3 4」となります。

これらの方法を使用することで、C++でdequeをソートすることができます。必要に応じて、昇順または降順のソートや、独自の比較方法を実装することができます。