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

Быстрое чтение массива из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Формула на с++ http://www.cyberforum.ru/cpp-beginners/thread267856.html
Как записать эту формулу для расчёта на с++ (x-1)корень из x делённо на корень 4x в 3 степени
C++ Тренажёр по устному счету Написать программу, моделирующую тренажер по устному счету. Пользователь вводит разрядность операндов, тип операции (+ - * /) на множестве натуральных чисел и количество примеров. Компьютер генерирует случайным образом операнды, вычисляет результат операции и выводит пользователю серию примеров, в каждом из которых один из операндов или результат замаскирован. Пользователь вводит пропущенное... http://www.cyberforum.ru/cpp-beginners/thread267851.html
C++ Класс-шаблон
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода элементов массива на экран, а так же для подсчета суммы элементов массива, расположенных после последнего элемента, равного нулю. Продемонстрировать работу методов класса.
Написать программу с родовым классом у которого есть поле двумерного массива... C++
Написать программу с родовым классом у которого есть поле двумерного массива, описать метод с помощью которого меняются местами два столбца массива. Добавлено через 2 часа 24 минуты Никто помочь не может? (
C++ свич http://www.cyberforum.ru/cpp-beginners/thread267842.html
подскажите пожалуйсто, как сделать чтобы после выполнения задачи 1 он сново просил нажать на цифру, пока не пройдут все? switch(A) { case 1: zad1(); break; case 2: zad2(); break; case 3: zad3(); break; case 4: zad4(); break; default:cout<<" Вы ввели не правильный номер "; }
C++ Алгоритм Дейкстры(нерабочий) Написал программу по нахождению кратчайшего пути алгоритмом Дейкстры. С простыми примерами программа справляется, но, к примеру, если где-то начиная со второй вершины происходит разветвление, то программа уходит в бесконечный цикл. Суть проблемы вижу - не все элементы матрицы зануляются. Но как сделать программу работоспособной, не знаю) помогите советом... #include<stdio.h> #include<conio.h>... подробнее

Показать сообщение отдельно
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
31.03.2011, 19:10     Быстрое чтение массива из файла
Можно читать весь файл в строку, используя итераторы istreambuf, дабы работать с буфером потока напрямую, без лишних проверок форматирования и прочего, чтоб каждое число по-отдельности не вводить, а всё сразу(работают они на несколько порядков быстрее,чем istream_iterator), потом загрузить всё это дело в stringstream и уже из него выводить поэлементно в нужный массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::string contents(
        (std::istreambuf_iterator<char>(
            *(std::auto_ptr<std::ifstream>(
                new std::ifstream("file")
            )).get()
        )), 
        std::istreambuf_iterator<char>()
    );
 
std::istringstream Slicer(contents);
 
for(int i = 0; i < 200; ++i)
    for(int j = 0; j < 500; ++j)
        Slicer >> data[i][j];
Добавлено через 4 минуты
насчет скорости, блочное чтение и такой подход на деле показывают довольно близкие результаты, но так лично для меня удобнее
 
Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru