#include #include #include #include class GameDatabase { map> dataBase; public: GameDatabase() = default; void Insert(ObjectId id, string name, size_t x, size_t y) { GameObject obj; obj.id = id; obj.name = name; obj.x = x; obj.y = y; dataBase[id] = obj; } void Remove(ObjectId id) { auto it = dataBase.find(id); if (it != dataBase.end()) dataBase.erase(it); } vector DataByName(string name) const { vector ret; for (auto it = dataBase.begin(); it != dataBase.end(); ++it) { if (it->second.name == name) ret.push_back(it->second); } return ret; } vector DataByPosition(size_t x, size_t y) const { vector ret; for (auto it = dataBase.begin(); it != dataBase.end(); ++it) { if (it->second.x == x && it->second.y == y) ret.push_back(it->second); } return ret; } vector Data() const { vector ret; for (auto it = dataBase.begin(); it != dataBase.end(); ++it) { ret.push_back(it->second); } return ret; } };