C++で順位付け

2017/09/27

#include <iostream>#include <vector>#include <algorithm>#include <numeric>#include <map>
using namespace std;
int main(){ const int ninzuu = 7; vector<int> tokuten(ninzuu); cout << "得点を入力してください "; for (int i = 0; i < ninzuu; i++) { cout << i + 1 << "人目は?>"; cin >> tokuten[i]; } vector<int> index(ninzuu); map<int, pair<int, int>> result; iota(index.begin(), index.end(), 0);//0で初期化 sort(index.begin(), index.end(), [&tokuten](const int& a, const int &b){return tokuten[a] > tokuten[b]; });//indexのみソート for (int i = 0; i < ninzuu; i++) { result[index[i] + 1] = make_pair(tokuten[index[i]], i + 1); } cout << " 結果は下のようになりました "; cout << "No|点数|順位 " << "------------- "; for (auto& x : result) { cout << "|" << x.first << "|" << x.second.first << "|" << x.second.second << endl; }}