fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <tuple>
  4. #include <set>
  5. #include <algorithm>
  6. #include <iterator>
  7. using namespace std;
  8.  
  9. int main() {
  10. std::vector<int> data = {7,8,8,8, 9, 2, 7, 9};
  11. std::multiset<int> count(data.begin(), data.end());
  12. std::sort(
  13. data.begin()
  14. , data.end()
  15. , [&](int a, int b) {
  16. int ca = count.count(a);
  17. int cb = count.count(b);
  18. return std::tie(ca, a) > std::tie(cb, b);
  19. }
  20. );
  21. std::copy(data.begin(), data.end(), std::ostream_iterator<int>(std::cout, " "));
  22. return 0;
  23. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
8 8 8 9 9 7 7 2