#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
//serialize std::vector<int> to file
void serialize(const std::vector<int>& v, std::ofstream& ofs) {
ofs << v.size() << endl;
for (int i = 0; i < v.size(); i++) {
ofs << v[i] << endl;
}
}
//deserialize file to std::vector<int> and return it
std::vector<int> deserialize(std::ifstream& ifs) {
int size;
ifs >> size;
std::vector<int> v(size);
for (int i = 0; i < size; i++) {
ifs >> v[i];
}
return v;
}
//use serialize and deserialize to serialize and deserialize std::vector<int>
void test_serialize_deserialize() {
std::vector<int> v = {1, 2, 3, 4, 5};
std::ofstream ofs("test.txt");
serialize(v, ofs);
ofs.close();
std::ifstream ifs("test.txt");
std::vector<int> v2 = deserialize(ifs);
for (int i = 0; i < v2.size(); i++) {
std::cout << v2[i] << " ";
}
std::cout << std::endl;
}