Я экспериментировал с разными способами записи и чтения двойных чисел из списка файлов.Я обнаружил, что для чрезвычайно больших данных с ++ сталкивается с трудностями, но у моих файлов максимум 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) удваивается.