fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <set>
  4. using namespace std;
  5.  
  6. struct Item {
  7. std::string data;
  8. int priority;
  9. };
  10.  
  11. struct item_compare
  12. {
  13. bool operator()(Item* lhs, Item* rhs)
  14. {
  15. return lhs->priority < rhs->priority;
  16. }
  17. };
  18.  
  19.  
  20. int main() {
  21. std::multiset<Item*, item_compare> item_set;
  22. Item i1{"data1", 1};
  23. Item i2{"data2", 0};
  24. Item i3{"data3", 3};
  25. Item i4{"data4", 0};
  26. Item i5{"data5", 0};
  27.  
  28. item_set.insert(&i1);
  29. item_set.insert(&i2);
  30. item_set.insert(&i3);
  31. item_set.insert(&i4);
  32. item_set.insert(&i5);
  33.  
  34. for(auto item : item_set)
  35. std::cout << item->data << '\n';
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 5676KB
stdin
Standard input is empty
stdout
data2
data4
data5
data1
data3