add_edge_visitors.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 60 行

HPP
60
字号
//=======================================================================// Copyright 2007 Aaron Windsor//// Distributed under the Boost Software License, Version 1.0. (See// accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)//=======================================================================#ifndef __ADD_EDGE_VISITORS_HPP__#define __ADD_EDGE_VISITORS_HPP__#include <boost/property_map.hpp>namespace boost{  struct default_add_edge_visitor  {    template <typename Graph, typename Vertex>    void visit_vertex_pair(Vertex u, Vertex v, Graph& g)    {      add_edge(u,v,g);    }  };  template<typename EdgeIndexMap>  struct edge_index_update_visitor  {    typedef typename       property_traits<EdgeIndexMap>::value_type edge_index_value_t;    edge_index_update_visitor(EdgeIndexMap em,                               edge_index_value_t next_index_available                              ) :       m_em(em),      m_next_index(next_index_available)    {}        template <typename Graph, typename Vertex>    void visit_vertex_pair(Vertex u, Vertex v, Graph& g)    {      typedef typename graph_traits<Graph>::edge_descriptor edge_t;      std::pair<edge_t, bool> return_value = add_edge(u,v,g);      if (return_value.second)        put( m_em, return_value.first, m_next_index++);    }  private:    EdgeIndexMap m_em;    edge_index_value_t m_next_index;  };} // namespace boost #endif //__ADD_EDGE_VISITORS_HPP__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?