Способы чтения одной индексированной строки из списка парных символов в файле .txt с помощью c ++ - PullRequest
0 голосов
/ 19 сентября 2018

Я экспериментировал с разными способами записи и чтения двойных чисел из списка файлов.Я обнаружил, что для чрезвычайно больших данных с ++ сталкивается с трудностями, но у моих файлов максимум 1000000 номеров, и я всегда знаю размер списка (сколько в нем чисел).Я хочу получить доступ к этому списку из программы, так как они были элементами массива по-быстрому.До сих пор у меня не было такого улучшения, которого я ожидал бы во времени.

Моя последняя версия - что-то вроде этого, функция, которая читает некоторое число из файла:

Doub tret_1(int i){ 
Doub d;
std::ifstream read("tret1.txt");
std:: string sLine;
int line_no = 0;


while (line_no != i+1 && getline(read, sLine)) {
++line_no;
}

std::string my_string = sLine; // string
std::istringstream iss(my_string);

if (line_no == i+1) {
iss >> d;
} else {
cout << "error" << '\n';
}
read.close();

return d;
}

Числа в файле примерно такие: 1.216176826351508e + 01.Он выполняет свою работу, но если у меня есть 6 таких функций, которые другие функции вызываются 100000 раз, это в конечном итоге отнимает больше времени / энергии, чем у меня есть доступ.Итак, мой вопрос: каковы наилучшие способы сделать это?Для чтения индексированного значения из файла списка (который не должен быть .txt) удваивается.

...