Войти
ПрограммированиеФорумОбщее

Невероятно большой массив - Новые Проблемы :)

Страницы: 1 2 Следующая »
#0
7:25, 20 сен. 2015

ОБНОВЛЕНО: Другие проблемы на 2-ой странице!
______________________________________________


Привет,

В общем я читаю csv файл и вбиваю данные в двойной массив. В файле 148040 строк и 100 колонок. Небольшое кол-во строк вбивает, а вот сто сорок тысяч уже Stack Overflow. В общем-то меня не очень заботит хранение абсолютно всех значений, я только ищу самые большие и самые маленькие в строках. Как освободить массив после чтения каждой строки? Или может есть лучше решение? Файл 150 мб...

+ Показать

#1
7:27, 20 сен. 2015

Стоит может и на float переключится, но некоторые значения (единичные случаи) уходят на много цифр после запятой, здесь это важно.

#2
8:33, 20 сен. 2015

> Как освободить массив после чтения каждой строки? Или может есть лучше решение? Файл 150 мб...
Не забивать такой слоновый массив?
Создай массив:

long double data[cols]
и работай с ним вот тут:
convertor >> data[col];

#3
8:34, 20 сен. 2015

Micard
> Или может есть лучше решение?
Выделять память динамически?

#4
9:11, 20 сен. 2015

-Eugene-, так и сделал, джисус, целый день будет забивать...

#5
9:33, 20 сен. 2015

Micard
Чет я ответил, не глядя на код... Зачем тебе такой большой массив?

#6
9:48, 20 сен. 2015

ммм... если не нужно хранение всех данных а нужна выборка или воопше поиск минимального/максимального значения, то зачем воопше его пихать в память.
читай построчно и храни промежуточный результат
т.е. double current_value вместо data[col][row]

#7
9:58, 20 сен. 2015

Denadan, ну я так и понял. Просто хранение данных может быть нужно для дальнейшего анализа, я пока не знаю что там хотят с ними делать, поэтому подстраховываюсь хранением всего.

#8
11:11, 20 сен. 2015

Micard
> а вот сто сорок тысяч уже Stack Overflow.
Ну так храни не в стеке, храни в куче.

#9
13:09, 20 сен. 2015

Мне кажется, тебе нужен awk

#10
13:33, 20 сен. 2015

Micard а почему нельзя  считывать данные блоками и подгружать необходимые данные из файла ?

#11
21:56, 20 сен. 2015

gambit_oz, такого не умею.

#12
22:20, 20 сен. 2015

Micard
В общем если тебе пока не нужны остальные данные - сделай как говорят, т.е. храни одну строку.
А если все-таки хочешь грузить все - 140мегов не такой уж большой объем, просто выделяй память в куче:

auto data = new long double [cols][rows];
#13
0:15, 21 сен. 2015

Или статическим массив объяви - тоже прокатит. Или глобальной переменной его сделай, это тоже самое что и статический.

#14
0:52, 21 сен. 2015

Решил хранить только одну строку пока, спасибо большое всем! Я оставлю тему пока открытой, могут еще быть вопросы!

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.