C++でのペアのベクターのソート方法


  1. ペアのベクターの作成: まず、ソートしたい要素をペアとして持つベクターを作成します。以下は、要素が整数型の場合の例です。
#include <vector>
#include <utility>
int main() {
    std::vector<std::pair<int, int>> vec;
    // ペアの要素を追加
    vec.push_back(std::make_pair(3, 1));
    vec.push_back(std::make_pair(1, 2));
    vec.push_back(std::make_pair(2, 3));
    vec.push_back(std::make_pair(4, 0));
    // ペアのベクターのソート前の表示
    for (const auto& pair : vec) {
        std::cout << "(" << pair.first << ", " << pair.second << ")" << std::endl;
    }
    return 0;
}
  1. ソートの実行: ソートを行うために、std::sort関数を使用します。ソートを行う際には、比較関数を指定する必要があります。
#include <algorithm>
// 比較関数
bool comparePairs(const std::pair<int, int>& a, const std::pair<int, int>& b) {
    // 1つ目の要素で比較し、同じ場合は2つ目の要素で比較する
    if (a.first == b.first) {
        return a.second < b.second;
    }
    return a.first < b.first;
}
int main() {
    // ...
    // ソートの実行
    std::sort(vec.begin(), vec.end(), comparePairs);
    // ペアのベクターのソート後の表示
    for (const auto& pair : vec) {
        std::cout << "(" << pair.first << ", " << pair.second << ")" << std::endl;
    }
    return 0;
}
  1. 結果の確認: ソート後のペアのベクターが正しく並び替えられていることを確認します。

以上が、C++でペアのベクターをソートする方法の基本的な手順です。必要に応じて、要素の型や比較方法を変更することができます。さらに複雑なソート方法やカスタム比較関数の作成も可能です。