#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;
}
