#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct data_t {
int num;
string str;
// 最後のconstを忘れると"instantiated from here"というエラーが出てコンパイルできないので注意
bool operator<( const data_t& right ) const {
return num == right.num ? str < right.str : num < right.num;
}
};
int main(){
vector<data_t> data_array(3);
data_array[0].num = 15;
data_array[0].str = "zzz";
data_array[1].num = 30;
data_array[1].str = "aaa";
data_array[2].num = 15;
data_array[2].str = "ccc";
sort(data_array.begin(), data_array.end());
for(int i = 0; i < data_array.size(); ++i){
cout << "i " << i << ": " << endl;
cout << " num: " << data_array[i].num << endl;
cout << " str: " << data_array[i].str << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBkYXRhX3QgewogICAgaW50IG51bTsKICAgIHN0cmluZyBzdHI7CgogICAgLy8g5pyA5b6M44GuY29uc3TjgpLlv5jjgozjgovjgagiaW5zdGFudGlhdGVkIGZyb20gaGVyZSLjgajjgYTjgYbjgqjjg6njg7zjgYzlh7rjgabjgrPjg7Pjg5HjgqTjg6vjgafjgY3jgarjgYTjga7jgafms6jmhI8KICAgIGJvb2wgb3BlcmF0b3I8KCBjb25zdCBkYXRhX3QmIHJpZ2h0ICkgY29uc3QgewogICAgICAgIHJldHVybiBudW0gPT0gcmlnaHQubnVtID8gc3RyIDwgcmlnaHQuc3RyIDogbnVtIDwgcmlnaHQubnVtOwogICAgfQp9OwoKaW50IG1haW4oKXsKICAgIHZlY3RvcjxkYXRhX3Q+IGRhdGFfYXJyYXkoMyk7CgogICAgZGF0YV9hcnJheVswXS5udW0gPSAxNTsKICAgIGRhdGFfYXJyYXlbMF0uc3RyID0gInp6eiI7CiAgICBkYXRhX2FycmF5WzFdLm51bSA9IDMwOwogICAgZGF0YV9hcnJheVsxXS5zdHIgPSAiYWFhIjsKICAgIGRhdGFfYXJyYXlbMl0ubnVtID0gMTU7CiAgICBkYXRhX2FycmF5WzJdLnN0ciA9ICJjY2MiOwoKICAgIHNvcnQoZGF0YV9hcnJheS5iZWdpbigpLCBkYXRhX2FycmF5LmVuZCgpKTsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgZGF0YV9hcnJheS5zaXplKCk7ICsraSl7CiAgICAgICAgY291dCA8PCAiaSAiIDw8IGkgPDwgIjogIiA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgIiAgbnVtOiAiIDw8IGRhdGFfYXJyYXlbaV0ubnVtIDw8IGVuZGw7CiAgICAgICAgY291dCA8PCAiICBzdHI6ICIgPDwgZGF0YV9hcnJheVtpXS5zdHIgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==