- ペアのベクターの作成: まず、ソートしたい要素をペアとして持つベクターを作成します。以下は、要素が整数型の場合の例です。
#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;
}
- ソートの実行:
ソートを行うために、
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;
}
- 結果の確認: ソート後のペアのベクターが正しく並び替えられていることを確認します。
以上が、C++でペアのベクターをソートする方法の基本的な手順です。必要に応じて、要素の型や比較方法を変更することができます。さらに複雑なソート方法やカスタム比較関数の作成も可能です。