// vim: set ts=2 sw=2 et tw=80: #include #include class checker { struct pos { unsigned x; unsigned y; pos(unsigned x, unsigned y) : x(x), y(y) {}; }; unsigned c; unsigned r; std::map map; public: checker(unsigned c, unsigned r) : c(c), r(r), map() {} void visit(unsigned int x, unsigned int y); bool visited(unsigned x, unsigned y); }; void checker::visit(unsigned x, unsigned y) { this->map[pos(] = true; } bool checker::visited(unsigned x, unsigned y) { return this->map[x * this->c + y]; } int main() { checker a(10, 10); a.visit(1, 1); assert(a.visited(1,1)); assert(!a.visited(1,0)); }