C++
1#include <iostream>
2#include <string>
3#include <algorithm>
4#include <vector>
5#include <tuple>
6#include <fstream>
7
8using cPerson = std::tuple<std::string,int,std::string>;
9using mArray = std::vector<cPerson>;
10
11std::ostream& operator<<(std::ostream& os, const cPerson& b){
12 return os << std::get<0>(b) << " " << std::get<1>(b) << " " << std::get<2>(b);
13}
14
15std::istream& operator>>(std::istream& is, cPerson& b){
16 return is >> std::get<0>(b) >> std::get<1>(b) >> std::get<2>(b);
17}
18
19int main(){
20 using namespace std;
21
22 mArray ary;
23
24 ifstream ifs("12th.in");
25 if ( !ifs.is_open() ) { return -1; }
26
27 cPerson person;
28 while ( ifs >> person ) {
29 ary.push_back(person);
30 }
31
32 // 標準ライブラリのsortを使った
33 // ココを自前で実装すればいい。
34 sort(ary.begin(), ary.end());
35
36 // 確認のため、ファイルではなくcoutに出力
37 for ( const auto& item : ary ) {
38 cout << item << endl;
39 }
40}