MCPcopy Create free account
hub / github.com/BirolLab/abyss / DirectedGraph

Class DirectedGraph

Graph/DirectedGraph.h:14–563  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12template <typename VertexProp = no_property,
13 typename EdgeProp = no_property>
14class DirectedGraph
15{
16 class Vertex;
17 typedef typename std::vector<Vertex> Vertices;
18 class Edge;
19 typedef typename std::vector<Edge> Edges;
20
21 public:
22 // Graph
23 typedef ContigNode vertex_descriptor;
24
25 // IncidenceGraph
26 typedef std::pair<vertex_descriptor, vertex_descriptor>
27 edge_descriptor;
28 typedef unsigned degree_size_type;
29
30 // BidirectionalGraph
31 typedef void in_edge_iterator;
32
33 // VertexListGraph
34 typedef unsigned vertices_size_type;
35
36 // EdgeListGraph
37 typedef unsigned edges_size_type;
38
39 // PropertyGraph
40 typedef VertexProp vertex_bundled;
41 typedef VertexProp vertex_property_type;
42 typedef EdgeProp edge_bundled;
43 typedef EdgeProp edge_property_type;
44
45 typedef boost::directed_tag directed_category;
46 typedef boost::allow_parallel_edge_tag edge_parallel_category;
47 struct traversal_category
48 : boost::incidence_graph_tag,
49 boost::adjacency_graph_tag,
50 boost::vertex_list_graph_tag,
51 boost::edge_list_graph_tag { };
52
53/** Iterate through the vertices of this graph. */
54class vertex_iterator
55 : public std::iterator<std::input_iterator_tag,
56 const vertex_descriptor>
57{
58 public:
59 vertex_iterator() { }
60 explicit vertex_iterator(vertices_size_type v) : m_v(v) { }
61 const vertex_descriptor& operator *() const { return m_v; }
62
63 bool operator ==(const vertex_iterator& it) const
64 {
65 return m_v == it.m_v;
66 }
67
68 bool operator !=(const vertex_iterator& it) const
69 {
70 return m_v != it.m_v;
71 }

Callers

nothing calls this directly

Calls 2

getFunction · 0.70
num_verticesFunction · 0.70

Tested by

no test coverage detected