You could use std::vector<std::vector<bool>>
or boost::adjacency_matrix
, it's simpler.
std::size_t v;
std::cin >> v;
std::vector<std::vector<bool>> g(v);
for(auto& elem: g)
elem.resize(v, false);
boost::adjacency_matrix<boost::undirectedS> ug(v);
std::size_t e;
std::cin >> e;
for(std::size_t i = 0; i < e; ++i)
{
std::size_t v1, v2;
std::cin >> v1 >> v2;
g.at(v1).at(v2) = true;
g.at(v2).at(v1) = true;
boost::add_edge(v1, v2, ug);
}