fork download
  1. #include <iostream>
  2. #include <set>
  3. using namespace std;
  4.  
  5. int tab[100];
  6.  
  7.  
  8.  
  9. /******* way 1 ********/
  10.  
  11. struct comp1 {
  12. bool operator()(const int &a, const int &b){
  13. return tab[a] < tab[b];
  14. }
  15. };
  16.  
  17. void func1(){
  18. set<int, comp1> S;
  19.  
  20. for(int i = 0; i < 11; i++) S.insert(i);
  21. for(int val: S) printf("%d ", val);
  22. printf("\n");
  23. }
  24.  
  25.  
  26.  
  27. /******* way2 *********/
  28.  
  29. void func2(){
  30. auto my_comp = [&](int a, int b)->bool {
  31. return tab[a] < tab[b];
  32. };
  33.  
  34. set<int, decltype(my_comp)> S(my_comp);
  35.  
  36. for(int i = 0; i < 11; i++) S.insert(i);
  37. for(int val: S) printf("%d ", val);
  38. printf("\n");
  39. }
  40.  
  41.  
  42.  
  43.  
  44. /**********************/
  45.  
  46. int main() {
  47. for(int i = 0; i < 11; i++) tab[i] = (i*i*i) % 11;
  48. func1();
  49. func2();
  50. return 0;
  51. }
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
0 1 7 9 5 3 8 6 2 4 10 
0 1 7 9 5 3 8 6 2 4 10