serialization - C++ Serialize/Deserialize std::map<int,int> from/to file -
i have std::map.
i know if can write file (and read file) in 1 line using fwrite, or if need write/read each value separately.
i hoping since nothing special, might possible.
use boost::serialization serialize in 1 line. header it:
boost/serialization/map.hpp code example
#include <map> #include <sstream> #include <boost/serialization/map.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> int main() { std::map<int, int> map = {{1,2}, {2,1}}; std::stringstream ss; boost::archive::text_oarchive oarch(ss); oarch << map; std::map<int, int> new_map; boost::archive::text_iarchive iarch(ss); iarch >> new_map; std::cout << (map == new_map) << std::endl; } output:
g++ -o new new.cpp -std=c++0x -lboost_serialization ./new 1 for file use std::ifstream/std::ofstream instead of std::stringstream , may binary_archive, instead of text_archive.
Comments
Post a Comment