I personally suggest to represent the matrix in a 1D space by calculating the necessary offset, if you don't want to do that, you can use std::vector<std::vector<sf::CircleShape>>> and then initialize it correctly.
For drawing it to the window, you'll just need to loop over both dimensions and call window.draw()