#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct data_t {
int num;
string str;
};
// 比較関数を定義
bool asc( const data_t& left, const data_t& right ) {
return left.num == right.num ? left.str < right.str : left.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(), asc);
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBkYXRhX3QgewogICAgaW50IG51bTsKICAgIHN0cmluZyBzdHI7Cn07CgovLyDmr5TovIPplqLmlbDjgpLlrprnvqkKYm9vbCBhc2MoIGNvbnN0IGRhdGFfdCYgbGVmdCwgY29uc3QgZGF0YV90JiByaWdodCApIHsKICAgIHJldHVybiBsZWZ0Lm51bSA9PSByaWdodC5udW0gPyBsZWZ0LnN0ciA8IHJpZ2h0LnN0ciA6IGxlZnQubnVtIDwgcmlnaHQubnVtOwp9CgppbnQgbWFpbigpewogICAgdmVjdG9yPGRhdGFfdD4gZGF0YV9hcnJheSgzKTsKCiAgICBkYXRhX2FycmF5WzBdLm51bSA9IDE1OwogICAgZGF0YV9hcnJheVswXS5zdHIgPSAienp6IjsKICAgIGRhdGFfYXJyYXlbMV0ubnVtID0gMzA7CiAgICBkYXRhX2FycmF5WzFdLnN0ciA9ICJhYWEiOwogICAgZGF0YV9hcnJheVsyXS5udW0gPSAxNTsKICAgIGRhdGFfYXJyYXlbMl0uc3RyID0gImNjYyI7CgogICAgc29ydChkYXRhX2FycmF5LmJlZ2luKCksIGRhdGFfYXJyYXkuZW5kKCksIGFzYyk7CiAgICAKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBkYXRhX2FycmF5LnNpemUoKTsgKytpKXsKICAgICAgICBjb3V0IDw8ICJpICIgPDwgaSA8PCAiOiAiIDw8IGVuZGw7CiAgICAgICAgY291dCA8PCAiICBudW06ICIgPDwgZGF0YV9hcnJheVtpXS5udW0gPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICIgIHN0cjogIiA8PCBkYXRhX2FycmF5W2ldLnN0ciA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K