出场顺序c++刚需求解

问题描述】

元宵节晚会上,参加节目表演的同学需要抽签决定出场顺序,序号小的同学先出场,现在已知n(0<n<100)位同学的姓名和抽到的号码(无重复),请将同学们的姓名,按照出场次序输出。

输入:第一行为一个数字n,表示班上有n名同学的信息。

       接下来有n行,每行包括同学的姓名和出场号,以空格隔开。

输出:n行,每行表示一个按照出场号排好的同学姓名。

注:假设班上无同名的学生。

【样例输入】

5

xinyu 4

haomiao 3

tiansen 6

jintao 2

zhangze 5

【样例输出】

jintao

haomiao

xinyu

zhangze

tiansen

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    vector<pair<string, int>> a;
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        string name;
        int no;
        cin >> name >> no;
        a.push_back({name, no});
    }
    sort(a.begin(), a.end(), [](const auto &lhs, const auto &rhs)
         { return lhs.second < rhs.second; });
    for_each(a.begin(), a.end(), [](const auto &v)
             { cout << v.first << '\n'; });
    return 0;
}