fork download
  1. #include <iostream>
  2.  
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. struct Graph {
  8. typedef unsigned int vertex_t;
  9. typedef std::vector< std::vector<bool> > edges_set_t;
  10.  
  11. edges_set_t edges;
  12.  
  13. Graph(vertex_t vertices = 0)
  14. : edges(std::vector< std::vector<bool> >(vertices, std::vector<bool>(vertices))) {
  15. }
  16.  
  17. void insertEdge(vertex_t v, vertex_t w) {
  18. edges[v][w] = 1;
  19. }
  20.  
  21. bool hasEdge(vertex_t v, vertex_t w) const {
  22. return edges[v][w];
  23. }
  24.  
  25. };
  26.  
  27. bool operator==(const Graph& g, const Graph& h) {
  28. return g.edges == h.edges;
  29. }
  30.  
  31.  
  32. int main() {
  33. Graph g1(1);
  34. g1.insertEdge(0, 0);
  35. Graph g2(g1);
  36.  
  37. cout << (g1 == g2) << endl; // true
  38. return 0;
  39. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
1