#include #include #include #include #include class GameDatabase { public: GameDatabase() = default; void Insert(ObjectId id, std::string name, size_t x, size_t y) { objects[id] = {name, {x, y}}; } void Remove(ObjectId id) { objects.erase(id); } vector DataByName(string name) const { vector answer; for (auto item : objects) { if (item.second.first == name) { answer.push_back({item.first, item.second.first, item.second.second.first, item.second.second.second}); } } return answer; } vector DataByPosition(size_t x, size_t y) const { vector answer; for (auto item : objects) { if (item.second.second.first == x && item.second.second.second == y) { answer.push_back({item.first, item.second.first, item.second.second.first, item.second.second.second}); } } return answer; } vector Data() const { vector answer; for (auto item : objects) { answer.push_back({item.first, item.second.first, item.second.second.first, item.second.second.second}); } return answer; } private: map>, std::greater> objects; };