Форум программистов, компьютерный форум 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 подробнее

Показать сообщение отдельно
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
02.04.2011, 17:28     Забекапить и восстановить вектор из файла
Kadet89, при необходимости быстрого ввода/вывода файлового я предпочитаю использовать istreambuf_iterator/ostreambuf_iterator, так как они позволяют производить операции с файлами напрямую, в обход ненужного в данном случае форматирования и прочих накладных расходов. Пример сейчас приведу.

Добавлено через 4 минуты
выйдет примерно так:

C++
1
2
3
4
5
6
7
void myOutput(const std::vector<char> &day_us)
    {
    std::ofstream outfile("test.txt", std::ios::out | std::ios::binary);
    std::ostreambuf_iterator<char> it(outfile);
    std::copy(day_us.begin(),day_us.end(),it);
    outfile.close();
    }
Насчет того, что быстрее: блоковый вывод или такой подход, скажу, что при использовании ostreambuf_iterator время незначительно отличается( чего не скажешь о ostream_iterator, которые работают значительно медленнее), так что стоит хорошо рассчитать все риски, прежде чем думать над блоковым выводом, так как в таком случае еще придется подбирать оптимальный размер блока для наибольшей скорости, а здесь такого нет.

Добавлено через 9 минут
Kadet89, а ваша версия не работает потому, что в функцию передается std::vector<uint32_t>, хотя должен бы std::vector<char>, так как outfile.write ожидает указателей на char, а у вас вышел бы не char *, а uint32_t *, что компилятору и не нравится.

Не по теме:

А, уже поправили

 
Текущее время: 21:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru