Difference between revisions of "Boost/BGL/Directed/IterateEdges"

From ProgrammingExamples
< Boost‎ | BGL
Jump to: navigation, search
(use graph_traits)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
==IterateEdges.cpp==
 
==IterateEdges.cpp==
 
<source lang="cpp">
 
<source lang="cpp">
 
 
#include <iostream>
 
#include <iostream>
 
#include <boost/graph/adjacency_list.hpp>
 
#include <boost/graph/adjacency_list.hpp>
Line 12: Line 11:
 
   Graph g;
 
   Graph g;
  
   Graph::vertex_descriptor v0 = boost::add_vertex(g);
+
   boost::graph_traits<Graph>::vertex_descriptor v0 = add_vertex(g);
   Graph::vertex_descriptor v1 = boost::add_vertex(g);
+
   Graph::vertex_descriptor v1 = add_vertex(g);
  
   std::pair<Graph::edge_descriptor, bool> e0 = boost::add_edge(v0, v1, g);
+
   std::pair<boost::graph_traits<Graph>::edge_descriptor, bool> e0 = add_edge(v0, v1, g);
 
      
 
      
   std::pair<Graph::edge_iterator, Graph::edge_iterator> edgeIteratorRange = boost::edges(g);
+
   std::pair<boost::graph_traits<Graph>::edge_iterator, boost::graph_traits<Graph>::edge_iterator> edgeIteratorRange = boost::edges(g);
   for(Graph::edge_iterator edgeIterator = edgeIteratorRange.first; edgeIterator != edgeIteratorRange.second; ++edgeIterator)
+
   for(boost::graph_traits<Graph>::edge_iterator edgeIterator = edgeIteratorRange.first; edgeIterator != edgeIteratorRange.second; ++edgeIterator)
 
   {
 
   {
 
     std::cout << *edgeIterator << std::endl;
 
     std::cout << *edgeIterator << std::endl;

Latest revision as of 16:47, 26 January 2012

IterateEdges.cpp

#include <iostream>
#include <boost/graph/adjacency_list.hpp>
 
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> Graph;
 
int main(int,char*[])
{
  // Create a graph object
  Graph g;
 
  boost::graph_traits<Graph>::vertex_descriptor v0 = add_vertex(g);
  Graph::vertex_descriptor v1 = add_vertex(g);
 
  std::pair<boost::graph_traits<Graph>::edge_descriptor, bool> e0 = add_edge(v0, v1, g);
 
  std::pair<boost::graph_traits<Graph>::edge_iterator, boost::graph_traits<Graph>::edge_iterator> edgeIteratorRange = boost::edges(g);
  for(boost::graph_traits<Graph>::edge_iterator edgeIterator = edgeIteratorRange.first; edgeIterator != edgeIteratorRange.second; ++edgeIterator)
   {
     std::cout << *edgeIterator << std::endl;
   }
  return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
 
Project(IterateEdges)
 
set(Boost_USE_MULTITHREADED ON)
FIND_PACKAGE(Boost 1.38 COMPONENTS required)
 
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${LINK_DIRECTORIES} ${Boost_LIBRARY_DIRS})
 
ADD_EXECUTABLE(IterateEdges IterateEdges.cpp)