/ / Как Boost сериализира STL контейнери? - C ++, сериализация, тласък

Как Boost сериализира STL контейнери? - C ++, сериализация, тласък

Трябва да знам как Boost :: Serialize работи със STL контейнери - като карта, вектор и списък.

По-конкретно, тя спестява ли размера на целия контейнер точно преди всички сами данни за контейнера?

Мога ли да прочета този размер, за да знам колко голям е контейнерът за STL?

Аз съм на Win7, 64bit с Visual Studio 2010.

Благодаря.

Отговори:

4 за отговор № 1

Ето изходния код за увеличаване на сериализацията std::vectorс: http://www.boost.org/doc/libs/1_38_0/boost/serialization/vector.hpp

std::setс: http://www.boost.org/doc/libs/1_38_0/boost/serialization/set.hpp

std::listс: http://www.boost.org/doc/libs/1_38_0/boost/serialization/list.hpp

std::vector е съвсем ясно, че го прави. Ако търсите в http://www.boost.org/doc/libs/1_38_0/boost/serialization/collections_load_imp.hpp изпълнение на заглавния файл, който виждаме:

collection_size_type count;
//...
ar >> BOOST_SERIALIZATION_NVP(count);

в load_collection функция. И двете std::list и std::set Сериализаторът го нарича директно.