
Add has(vertex) and has(edge) to graph_base. --- milena/mln/util/internal/graph_base.hh | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/milena/mln/util/internal/graph_base.hh b/milena/mln/util/internal/graph_base.hh index 17143c5..9f2e6e2 100644 --- a/milena/mln/util/internal/graph_base.hh +++ b/milena/mln/util/internal/graph_base.hh @@ -113,7 +113,10 @@ namespace mln /// \brief Return the number of vertices in the graph. size_t v_nmax() const; - /// Check whether a vertex id \p id_v is valid in the graph. + /// Check whether a vertex \p v exists in the graph. + bool has(const util::vertex<E>& v) const; + + /// Check whether a vertex id \p id_v exists in the graph. bool has_v(unsigned id_v) const; /// Return the number of adjacent edges of vertex \p id_v. @@ -148,6 +151,9 @@ namespace mln /// \brief Return the number of edges in the graph. size_t e_nmax() const; + /// Check whether an edge \p e exists in the graph. + bool has(const util::edge<E>& e) const; + /// Return whether \p id_e is in the graph. bool has_e(unsigned id_e) const; @@ -284,6 +290,14 @@ namespace mln template<typename E> inline bool + graph_base<E>::has(const util::vertex<E>& v) const + { + return has_v(v.id()); + } + + template<typename E> + inline + bool graph_base<E>::has_v(unsigned id_v) const { return id_v < vertices_.size(); @@ -385,6 +399,14 @@ namespace mln template<typename E> inline bool + graph_base<E>::has(const util::edge<E>& e) const + { + return has_e(e.id()); + } + + template<typename E> + inline + bool graph_base<E>::has_e(unsigned id_e) const { return id_e < edges_.size(); -- 1.5.6.5