fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. struct data_t {
  9. int num;
  10. string str;
  11. };
  12.  
  13. // 関数オブジェクトを定義
  14. class MY_LESS_DEFINITION{
  15. public:
  16. bool operator() (const data_t& left, const data_t& right) const {
  17. return left.num == right.num ? left.str < right.str : left.num < right.num;
  18. }
  19. };
  20.  
  21. int main(){
  22. vector<data_t> data_array(3);
  23.  
  24. data_array[0].num = 15;
  25. data_array[0].str = "zzz";
  26. data_array[1].num = 30;
  27. data_array[1].str = "aaa";
  28. data_array[2].num = 15;
  29. data_array[2].str = "ccc";
  30.  
  31. sort(data_array.begin(), data_array.end(), MY_LESS_DEFINITION());
  32.  
  33. for(int i = 0; i < data_array.size(); ++i){
  34. cout << "i " << i << ": " << endl;
  35. cout << " num: " << data_array[i].num << endl;
  36. cout << " str: " << data_array[i].str << endl;
  37. }
  38. return 0;
  39. }
  40.  
Success #stdin #stdout 0s 2992KB
stdin
Standard input is empty
stdout
i 0: 
  num: 15
  str: ccc
i 1: 
  num: 15
  str: zzz
i 2: 
  num: 30
  str: aaa