📄 add_edge_visitors.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 + -