#include <iostream>
#include <vector>

struct Map
{
    int width;
    int height;
    std::vector<char> field;

    Map(int width, int height, char value = ' ')
    : width{ width }, height{ height }, field(height * width, value)
    {
    }

    auto operator()(int i, int j) const -> char
    {
        return field[i * width + j];
    }

    auto operator()(int i, int j) -> char&
    {
        return field[i * width + j];
    }
};

auto main() -> int
{
    Map m{ 10, 10, '.' };
    m(3, 3) = 'x';
    m(5, 0) = 'x';
    m(0, 5) = 'x';
    for (int i = 0; i < m.height; ++i)
    {
        for (int j = 0; j < m.width; ++j)
            std::cout << m(i, j);
        std::cout << "\n";
    }
    return 0;
}
