fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iterator>
  5. using namespace std;
  6.  
  7. struct Foo {
  8. float score;
  9. bool winner;
  10. };
  11.  
  12. int main() {
  13. vector<Foo> inputs { {20, true}, {10, false}, {5, true}, {30, true} };
  14. vector<Foo*> foor;
  15. for (auto& x:inputs)
  16. foor.push_back(&x);
  17. vector<Foo*> foob(inputs.size(),nullptr);
  18. transform(inputs.begin(), inputs.end(), foob.begin(), [](auto&x) {return &x;});
  19. for (auto& x:inputs) cout<<x.score<<" "; cout<<endl;
  20. for (auto& x:foob) cout<<x->score<<" "; cout<<endl;
  21. for (auto& x:foor) cout<<x->score<<" "; cout<<endl;
  22.  
  23. sort(foob.begin(), foob.end(), [](Foo*a, Foo*b)->bool {return a->score>b->score;});
  24. for (auto& x:foob) cout<<x->score<<" "; cout<<endl;
  25. for (size_t i=0; i<foob.size(); i++)
  26. foob[i]->winner= i<3;
  27. for (auto& x:foob) cout<<x->winner<<" "; cout<<endl;
  28. return 0;
  29. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
20 10 5 30 
20 10 5 30 
20 10 5 30 
30 20 10 5 
1 1 1 0