Программа, которую я пытаюсь написать, посвящена раздаче еды по людям.
И я использую метод сортировки, чтобы отсортировать людей по их идентификатору. Проблема ниже:
результат, который я хотел:
9 90
60 90
81 90
3 80
5 80
4 60
72 60
Но когда я сортирую только id с помощью метода sort, он работает правильно. Я не уверен, в чем проблема.
И это мой код:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Info
{
int id;
int weight;
bool operator < (const Info& val) const {
return val.weight < weight;
}
};
int main()
{
vector<Info> info_v;
Info info;
int childNum = 0;
cin >> childNum;
for (int i = 0; i < childNum; i++) {
cin >> info.id >> info.weight;
info_v.push_back(info);
}
sort(info_v.begin(), info_v.end());
for (int i = 0; i < childNum; i++)
{
cout << info_v[i].id << "\t" << info_v[i].weight << endl;
}
return 0;
}
Как отсортировать числа в порядке цифр? Пожалуйста, дайте мне некоторую идею!
Замените вкладку ‘\ t’ на один пробел.
Других решений пока нет …