Форум программистов, компьютерный форум CyberForum.ru

Забекапить и восстановить вектор из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread268876.html
Дана квадратная матрица. Поменять последние элементы каждого столбца с элементами главной диагонали.
C++ Процедуры и функции. Общие вопросы. Раньше изучал Паскаль теперь решил попробовать С++. В Паскале если описать процедуру так procedure example (var A:char; B:char); то внутри процедуры переменную "А" мы можем изменять, а переменную "B" нет. Как этот механизм выглядит в С++? http://www.cyberforum.ru/cpp-beginners/thread268873.html
C++ Двумерные массивы
Дана прямоугольная матрица. Опpеделить: 1. количество строк, среднее арифметическое элементов которых меньше заданной величины(n с клавиатуры) 2. уплотнить заданную матрицу, удаляя из нее строки и столбцы, содеpжащие нечетные элементы Язык обычный СИ.
C++ Класс
Есть класс: class a { public: int i = 4; browser br; }; Как сделать чтобы при создании объекта класса, объект br создавался не сразу, а только при присвоении: a cl; cl.br = ...;
C++ Формула в формате C/C++ http://www.cyberforum.ru/cpp-beginners/thread268849.html
Формула в формате C/C++ Помогите пожалуйста переделать формулу на картинке в формат с++. Буду очень благодарна!
C++ Деление пополам(бинарный поиск) Всем доброго времени суток! уже часа 2 ломаю голову над проблемой: комьютер должен отгадать число за 10 или менее вопросов в диапозоне от 1 до 1000 применить идею методом деления пополам(бинарного поиска) хотя что это такое бинарный поиск я понятия неимею... намекните примерно как это реализовать чуть ли не забыл... реализовать надо на борланде 3.1 подробнее

Показать сообщение отдельно
Kadet89
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
02.04.2011, 16:33     Забекапить и восстановить вектор из файла
Имею вектор чаровы по 8 бит каждый элемент std::vector<char> muz; вцелом весь вектор занимает около 200 мегабайт.
Нужно в приложение добавить возможность сохранять и восстанавливать на ходу на raid ssd, притом за максимальную скорость, желательно за миллисекунды.
Я представляю это так, узнаю в какой области памяти лежит вектор ... или конкретнее где он начинается и сколько занимает и дальше какой-то специальной функцией копирую его как простую бинарную строку в файл.
Помогите пожалуйста реализовать.

Добавлено через 3 минуты
Вот нашел такой пример для записи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main(void)
{
    FILE *fp;
    size_t count;
    char const *str = "привет\n";
 
    fp = fopen("пример.txt", "wb");
    if(fp == NULL) {
        perror("ошибка открытия пример.txt");
        return EXIT_FAILURE;
    }
    count = fwrite(str, 1, strlen(str), fp);
    printf("Записано %lu байт. fclose(fp) %s.\n", (unsigned long)count, fclose(fp) == 0 ? "успешно" : "с ошибкой");
 
    return 0;
}
Где fwrite (*p, size, n, *f);
Функция записывает n элементов длиной size байт из буфера,заданного указателем p,в поток f. Возвращает число записанных элементов.
Мне получается нужно задать указатель на начало вектора, определить его длину и тогда можно прямиком копировать его в файл, правильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru