Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::vector<std::vector<int>> main_vector;
- std::vector<int> temp_vector;
- for (std::size_t i = 0; i < 5; i++)
- {
- main_vector.push_back(temp_vector);
- for (std::size_t j = 0; j < 5; j++)
- {
- main_vector[i][j] = j;
- }
- }
- bin_file.open("test.txt", std::ios::out | std::ios::binary);
- bin_file.write((char *)&main_vector, sizeof(main_vector)); //не сработает
- // Пишем размер внешнего вектора
- size_t sz = main_vector.size();
- stream.write(&sz,sizeof(sz));
- for(size_t i = 0; i < sz; ++i)
- {
- // То же самое для каждого внутреннего:
- vector<int>& v = main_vector[i];
- size_t sz = v.size();
- stream.write(&sz,sizeof(sz));
- // Пишем данные
- for(size_t j = 0; j < sz; ++j)
- {
- int n = v[j];
- stream.write(&n,sizeof(n));
- }
- // Или, поскольку в векторе данные лежат подряд -
- // просто stream.write(v.data(), sizeof(int)*sz);
- }
- int main(int argc, char *argv[]) {
- std::ofstream bin_file;
- std::ifstream read_file;
- std::vector<std::vector<int>> main_vector;
- main_vector.resize(5);
- for (std::size_t i = 0; i < 5; i++) {
- for (std::size_t j = 0; j < 5; j++) {
- main_vector[i].push_back(j);
- }
- }
- for (int i {}; i < 5; ++i) {
- for (int j {}; j < 5; ++j) {
- std::cout << main_vector[i][j] << ' ';
- }
- }
- std::cout << std::endl;
- bin_file.open("test.txt", std::ios::out | std::ios::binary);
- for (int i{}; i < main_vector.size(); ++i) {
- bin_file.write((char *)&main_vector[i][0],
- main_vector[i].size() * sizeof(main_vector[i][0]));
- }
- bin_file.close();
- char array[100];
- read_file.open("test.txt", std::ios::in | std::ios::binary);
- read_file.read(array, 100);
- read_file.close();
- int *arr = reinterpret_cast<int *>(array);
- for (int i {}; i < 25; ++i) {
- std::cout << *arr << ' ';
- ++arr;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment