⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 add_edge_visitors.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
//=======================================================================// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -