fork download
  1. #include <iostream>
  2. #include <utility>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. #include "boost/graph/graph_traits.hpp"
  7. #include "boost/graph/adjacency_list.hpp"
  8.  
  9. using namespace boost;
  10.  
  11. typedef adjacency_list<vecS, vecS, undirectedS> UndirectedGraph;
  12. typedef boost::graph_traits<UndirectedGraph>::edge_iterator edge_iterator;
  13.  
  14.  
  15. int graph_show(UndirectedGraph &g);
  16.  
  17.  
  18. int main(int argc, char *argv[])
  19. {
  20. //UndirectedGraph g;
  21.  
  22. typedef boost::graph_traits<UndirectedGraph>::edge_descriptor edge_descriptor;
  23. edge_descriptor ed;
  24.  
  25. int Nl=4;
  26.  
  27. std::vector<edge_descriptor> edge_list;
  28. std::vector<std::vector<edge_descriptor> > graph_edge_list;
  29. std::vector<UndirectedGraph> graph_list(Nl); // init Nl graphs in the vector
  30.  
  31. bool inserted;
  32. for (int nb = 0; nb < Nl; ++nb)
  33. //while(nb<Nl)
  34. {
  35. tie(ed,inserted)=add_edge(nb,nb+1,graph_list[nb]);
  36. edge_list.push_back(ed);
  37. tie(ed,inserted)=add_edge(nb,nb+1,graph_list[nb]);
  38. edge_list.push_back(ed);
  39. graph_edge_list.push_back(edge_list);
  40. //nb=nb+1;
  41. //graph_list.push_back(g);
  42. }
  43.  
  44. std::cout<<"size of the graph vector is: "<<graph_list.size()<<std::endl;
  45.  
  46. remove_edge(graph_edge_list[0][0],graph_list[0]);
  47.  
  48. for (int ig = 0; ig < Nl; ++ig) {
  49. std::cout<<"graph#"<<ig<<std::endl;
  50. std::cout<<"Size of edge_list is: "<<graph_edge_list[ig].size()<<std::endl;
  51. graph_show(graph_list[ig]);
  52. }
  53. std::cout<<"Success"<<std::endl;
  54. return 0;
  55. }
  56.  
  57. int graph_show(UndirectedGraph &g)
  58. {
  59. std::cout<<"Number of edges is : "<<boost::num_edges(g)<<std::endl;
  60. std::cout<<"Number of vertices is : "<<boost::num_vertices(g)<<std::endl;
  61. std::pair<edge_iterator,edge_iterator> ei=edges(g);
  62.  
  63. for (edge_iterator edge_iter = ei.first; edge_iter!=ei.second; ++edge_iter) {
  64. std::cout<<"("<< boost::source(*edge_iter,g)<<","<<boost::target(*edge_iter,g)<<")"<<std::endl;
  65. }
  66.  
  67. typedef boost::graph_traits<UndirectedGraph>::vertex_iterator iter_v;
  68.  
  69. std::cout<<"vertices(g)={ ";
  70. for (std::pair<iter_v,iter_v> p = vertices(g); p.first != p.second; ++p.first) {
  71. std::cout<< *p.first;
  72. std::cout<<" ";
  73. }
  74. std::cout<<"}"<<std::endl;
  75.  
  76. return 0;
  77. }
  78.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:6:40: fatal error: boost/graph/graph_traits.hpp: No such file or directory
 #include "boost/graph/graph_traits.hpp"
                                        ^
compilation terminated.
stdout
Standard output is empty