C++の2重配列でnum2の大きい順番にデータを並び替える方法です
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
vector<vector<int>> data(N, vector<int>(2));
for (int i = 0; i < N; i++) {
int num1,num2;
cin >> num1;
cin >> num2;
//num2の大きいほうから順に並べるのでnum2とnum1を入れ替えて配列に入れる。
data[i][0] = num2;
data[i][1] = num1;
}
//num2の大きいほうから並び替える。
sort(data.begin(), data.end(), greater<vector<int>>());
for (int i = 0; i < N; i++) {
//num1,num2の順番で出力する。
cout << data[i][1] << " " << data[i][0] << endl;
}
}
小さいほうから順番に並び替える場合は
sort(data.begin(), data.end(), greater<vector<int>>());
を
sort(data.begin(), data.end(), less<vector<int>>());
に変えます。