欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

write_graphml.rst

Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
RST
字号:
============================|(logo)|__ ``write_graphml``============================.. |(logo)| image:: ../../../boost.png   :align: middle   :alt: Boost__ ../../../index.htm::  template<typename Graph>  void  write_graphml(std::ostream& out, const Graph& g, const dynamic_properties& dp, 	        bool ordered_vertices=false);  template<typename Graph, typename VertexIndexMap>  void  write_graphml(std::ostream& out, const Graph& g, VertexIndexMap vertex_index,                const dynamic_properties& dp, bool ordered_vertices=false);This is to write a BGL graph object into an output stream in thegraphml_ format.  Both overloads of ``write_graphml`` will emit all ofthe properties stored in the dynamic_properties_ object, therebyretaining the properties that have been read in through the dualfunction read_graphml_. The second overload must be used when thegraph doesn't have an internal vertex index map, which must then besupplied with the appropriate parameter... contents::Where Defined-------------``<boost/graph/graphml.hpp>``Parameters----------OUT: ``std::ostream& out``  A standard ``std::ostream`` object.IN: ``VertexListGraph& g``   A directed or undirected graph.  The  graph's type must be a model of VertexListGraph_. If the graph  doesn't have an internal ``vertex_index`` property map, one  must be supplied with the vertex_index parameter.IN: ``VertexIndexMap vertex_index``  A vertex property map containing the indexes in the range  [0,num_vertices(g)].IN: ``dynamic_properties& dp``  Contains all of the vertex and edge properties that should be  emitted by the graphml writer.IN: ``bool ordered_vertices``  This tells whether or not the order of the vertices from vertices(g)  matches the order of the indexes. If ``true``, the ``parse.nodeids``  graph attribute will be set to ``canonical``. Otherwise it will be  set to ``free``.Example-------This example demonstrates using BGL-graphml interface to write a BGL graph into a graphml format file.::  enum files_e { dax_h, yow_h, boz_h, zow_h, foo_cpp,                 foo_o, bar_cpp, bar_o, libfoobar_a,                 zig_cpp, zig_o, zag_cpp, zag_o,                 libzigzag_a, killerapp, N };  const char* name[] = { "dax.h", "yow.h", "boz.h", "zow.h", "foo.cpp",                         "foo.o", "bar.cpp", "bar.o", "libfoobar.a",                         "zig.cpp", "zig.o", "zag.cpp", "zag.o",                         "libzigzag.a", "killerapp" };  int main(int,char*[])  {      typedef pair<int,int> Edge;      Edge used_by[] = {          Edge(dax_h, foo_cpp), Edge(dax_h, bar_cpp), Edge(dax_h, yow_h),          Edge(yow_h, bar_cpp), Edge(yow_h, zag_cpp),          Edge(boz_h, bar_cpp), Edge(boz_h, zig_cpp), Edge(boz_h, zag_cpp),          Edge(zow_h, foo_cpp),          Edge(foo_cpp, foo_o),          Edge(foo_o, libfoobar_a),          Edge(bar_cpp, bar_o),          Edge(bar_o, libfoobar_a),          Edge(libfoobar_a, libzigzag_a),          Edge(zig_cpp, zig_o),          Edge(zig_o, libzigzag_a),          Edge(zag_cpp, zag_o),          Edge(zag_o, libzigzag_a),          Edge(libzigzag_a, killerapp)       };      const int nedges = sizeof(used_by)/sizeof(Edge);      typedef adjacency_list< vecS, vecS, directedS,          property< vertex_color_t, string >,          property< edge_weight_t, int >          > Graph;      Graph g(used_by, used_by + nedges, N);      graph_traits<Graph>::vertex_iterator v, v_end;      for (tie(v,v_end) = vertices(g); v != v_end; ++v)          put(vertex_color_t(), g, *v, name[*v]);      graph_traits<Graph>::edge_iterator e, e_end;      for (tie(e,e_end) = edges(g); e != e_end; ++e)          put(edge_weight_t(), g, *e, 3);      dynamic_properties dp;      dp.property("name", get(vertex_color_t(), g));      dp.property("weight", get(edge_weight_t(), g));      write_graphml(std::cout, g, dp, true);   }The output will be:::  <?xml version="1.0" encoding="UTF-8"?>  <graphml xmlns="http://graphml.graphdrawing.org/xmlns/graphml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/graphml http://graphml.graphdrawing.org/xmlns/graphml/graphml-attributes-1.0rc.xsd">    <key id="key0" for="node" attr.name="name" attr.type="string" />    <key id="key1" for="edge" attr.name="weight" attr.type="int" />    <graph id="G" edgedefault="directed" parse.nodeids="canonical" parse.edgeids="canonical" parse.order="nodesfirst">      <node id="n0">        <data key="key0">dax.h</data>      </node>      <node id="n1">        <data key="key0">yow.h</data>      </node>      <node id="n2">        <data key="key0">boz.h</data>      </node>      <node id="n3">        <data key="key0">zow.h</data>      </node>      <node id="n4">        <data key="key0">foo.cpp</data>      </node>      <node id="n5">        <data key="key0">foo.o</data>      </node>      <node id="n6">        <data key="key0">bar.cpp</data>      </node>      <node id="n7">        <data key="key0">bar.o</data>      </node>      <node id="n8">        <data key="key0">libfoobar.a</data>      </node>      <node id="n9">        <data key="key0">zig.cpp</data>      </node>      <node id="n10">        <data key="key0">zig.o</data>      </node>      <node id="n11">        <data key="key0">zag.cpp</data>      </node>      <node id="n12">        <data key="key0">zag.o</data>      </node>      <node id="n13">        <data key="key0">libzigzag.a</data>      </node>      <node id="n14">        <data key="key0">killerapp</data>      </node>      <edge id="e0" source="n0" target="n4">        <data key="key1">3</data>      </edge>      <edge id="e1" source="n0" target="n6">        <data key="key1">3</data>      </edge>      <edge id="e2" source="n0" target="n1">        <data key="key1">3</data>      </edge>      <edge id="e3" source="n1" target="n6">        <data key="key1">3</data>      </edge>      <edge id="e4" source="n1" target="n11">        <data key="key1">3</data>      </edge>      <edge id="e5" source="n2" target="n6">        <data key="key1">3</data>      </edge>      <edge id="e6" source="n2" target="n9">	 <data key="key1">3</data>      </edge>      <edge id="e7" source="n2" target="n11">	<data key="key1">3</data>      </edge>      <edge id="e8" source="n3" target="n4">	<data key="key1">3</data>      </edge>      <edge id="e9" source="n4" target="n5">	<data key="key1">3</data>      </edge>      <edge id="e10" source="n5" target="n8">	<data key="key1">3</data>      </edge>      <edge id="e11" source="n6" target="n7">	<data key="key1">3</data>      </edge>      <edge id="e12" source="n7" target="n8">	<data key="key1">3</data>      </edge>      <edge id="e13" source="n8" target="n13">	<data key="key1">3</data>      </edge>      <edge id="e14" source="n9" target="n10">	<data key="key1">3</data>      </edge>      <edge id="e15" source="n10" target="n13">	<data key="key1">3</data>      </edge>      <edge id="e16" source="n11" target="n12">	<data key="key1">3</data>      </edge>      <edge id="e17" source="n12" target="n13">	<data key="key1">3</data>      </edge>      <edge id="e18" source="n13" target="n14">	<data key="key1">3</data>      </edge>    </graph>  </graphml>See Also--------_read_graphmlNotes----- - Note that you can use graphml file write facilities without linking   against the ``boost_graph`` library... _graphml: http://graphml.graphdrawing.org/.. _dynamic_properties: ../../property_map/doc/dynamic_property_map.html.. _read_graphml: read_graphml.html.. _VertexListGraph: VertexListGraph.html

⌨️ 快捷键说明

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