Difference between revisions of "Boost/BGL/Directed/IterateEdges"
From ProgrammingExamples
Daviddoria (Talk | contribs) |
Daviddoria (Talk | contribs) (use graph_traits) |
||
(2 intermediate revisions 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> | ||
− | typedef boost::adjacency_list<boost::vecS, boost::vecS, boost:: | + | typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> Graph; |
int main(int,char*[]) | int main(int,char*[]) | ||
Line 12: | Line 11: | ||
Graph g; | Graph g; | ||
− | Graph::vertex_descriptor v0 = | + | boost::graph_traits<Graph>::vertex_descriptor v0 = add_vertex(g); |
− | Graph::vertex_descriptor v1 = | + | Graph::vertex_descriptor v1 = add_vertex(g); |
− | std::pair<Graph::edge_descriptor, bool> e0 = | + | 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)