fork download
  1. #include <iostream>
  2. #include <set>
  3.  
  4. class Entity {
  5. public:
  6. int num;
  7. Entity(int num):num(num){}
  8. bool operator< (const Entity& _entity) const { return (this->num < _entity.num); }
  9. };
  10.  
  11. struct my_cmp {
  12. bool operator() (const Entity* lhs, const Entity* rhs) const { return (*lhs < *rhs); }
  13. };
  14.  
  15. class EntityManager {
  16. private:
  17. std::set<Entity*, my_cmp> entities;
  18. public:
  19. void AddEntity(int num) { entities.insert(new Entity(num)); }
  20. void ListAllEntities() const {
  21. unsigned int i = 0;
  22. for (auto& entity: entities) {
  23. std::cout << "Entity[" << i << "]: num:" << entity->num << std::endl;
  24. i++;
  25. }
  26. }
  27. };
  28.  
  29. int main(void) {
  30. EntityManager manager;
  31. manager.AddEntity(2);
  32. manager.AddEntity(1);
  33. manager.AddEntity(4);
  34. manager.AddEntity(3);
  35. manager.ListAllEntities();
  36. return 0;
  37. }
Success #stdin #stdout 0s 4508KB
stdin
Standard input is empty
stdout
Entity[0]: num:1
Entity[1]: num:2
Entity[2]: num:3
Entity[3]: num:4