/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Library/boost/libs/graph/test/serialize.cpp
88 строк
2 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
// Copyright (C) 2006 Trustees of Indiana University // // 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) #include <boost/config.hpp> #include <iostream> #include <fstream> #include <string> #include <boost/tuple/tuple.hpp> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/visitors.hpp> #include <boost/graph/breadth_first_search.hpp> #include <map> #include <boost/graph/adj_list_serialize.hpp> #include <boost/archive/xml_iarchive.hpp> #include <boost/archive/xml_oarchive.hpp> struct vertex_properties { std::string name; template < class Archive > void serialize(Archive& ar, const unsigned int /*version*/) { ar& BOOST_SERIALIZATION_NVP(name); } }; struct edge_properties { std::string name; template < class Archive > void serialize(Archive& ar, const unsigned int /*version*/) { ar& BOOST_SERIALIZATION_NVP(name); } }; using namespace boost; typedef adjacency_list< vecS, vecS, undirectedS, vertex_properties, edge_properties > Graph; typedef graph_traits< Graph >::vertex_descriptor vd_type; typedef adjacency_list< vecS, vecS, undirectedS, vertex_properties > Graph_no_edge_property; int main() { { std::ofstream ofs("./kevin-bacon2.dat"); archive::xml_oarchive oa(ofs); Graph g; vertex_properties vp; vp.name = "A"; vd_type A = add_vertex(vp, g); vp.name = "B"; vd_type B = add_vertex(vp, g); edge_properties ep; ep.name = "a"; add_edge(A, B, ep, g); oa << BOOST_SERIALIZATION_NVP(g); Graph_no_edge_property g_n; oa << BOOST_SERIALIZATION_NVP(g_n); } { std::ifstream ifs("./kevin-bacon2.dat"); archive::xml_iarchive ia(ifs); Graph g; ia >> BOOST_SERIALIZATION_NVP(g); if (!(g[*(vertices(g).first)].name == "A")) return -1; Graph_no_edge_property g_n; ia >> BOOST_SERIALIZATION_NVP(g_n); } return 0; }