Дамп std::vector в файл

Я хочу сохранить все значения массива в файл. Сам вектор представляет из себя std::vector<some_struct> users. Я пытался сделать вот так

std::fstream savef;
savef.open(filename,std::ios_base::binary|std::ios_base::out|std::ios_base::trunc);
savef.write(reinterpret_cast<char*>(users),sizeof(users));
savef.close();

Но получил ошибку invalid cast


Ответы (1 шт):

Автор решения: Антон

С c++11 у std::vector можно получить указатель на массив, который используется внутри

std::fstream savef;
savef.open(filename,std::ios_base::binary|std::ios_base::out|std::ios_base::trunc);
savef.write(reinterpret_cast<char*>(users.data()), sizeof(value_type)*users.size());
savef.close();

std::vector data()

→ Ссылка