24 template<
class Vertex,
class Edge>
64 auto idx = vertices_.size();
65 vertices_.push_back(v);
66 adj_edges_.push_back(std::vector<edge_t>());
81 assert(source < vertices_.size());
82 adj_edges_[source].push_back(
edge_t(source,target,e));
83 return adj_edges_[source].back();
106 return adj_edges_[i];
112 return adj_edges_[i];
118 return vertices_.size();
123 std::vector<vertex_t> vertices_;
126 std::vector<std::vector<edge_t>> adj_edges_;
auto target() const
Definition graph.hpp:48
edge_t(vertex_descriptor_t source, vertex_descriptor_t target, const edge_info_t &edge_info)
Definition graph.hpp:34
auto source() const
Definition graph.hpp:43
Graph in adjacency list representation.
Definition graph.hpp:25
Edge edge_info_t
Definition graph.hpp:30
size_t vertex_descriptor_t
Definition graph.hpp:27
auto & adj_edges(vertex_descriptor_t i)
iterable of (descriptors of) adjacent edges
Definition graph.hpp:111
const auto & adj_edges(vertex_descriptor_t i) const
iterable of (descriptors of) adjacent edges
Definition graph.hpp:105
const auto & operator[](vertex_descriptor_t i) const
Definition graph.hpp:94
auto & add_edge(vertex_descriptor_t source, vertex_descriptor_t target, const edge_info_t &e)
add egde
Definition graph.hpp:78
Vertex vertex_t
Definition graph.hpp:29
vertex_descriptor_t add_vertex()
add vertex
Definition graph.hpp:72
adjacency_list()
constructor
Definition graph.hpp:58
auto size()
number of vertices
Definition graph.hpp:117
vertex_descriptor_t add_vertex(const vertex_t &v)
add vertex
Definition graph.hpp:63
auto & add_edge(vertex_descriptor_t source, vertex_descriptor_t target)
add egde
Definition graph.hpp:88
Definition assignment.hpp:29