Название: Изменение элементов контейнеров Отправлено: Bolonat от Август 10, 2017, 12:30 Читаю текстовый файл. Каждая строка файла содержит некоторые значения через запятую. N-ое значение относится к n-му каналу. Надо разнести значения по каналам.
Код: QStringList lWordsList = row.split ( ",", QString::SkipEmptyParts ); row - очередная строка из файла. QMap<int, CChannel> channelList - список каналов CChannel. У CChannel есть список значений QMap <QDateTime, double> valueList. Когда пишу for(int j=0;j<lWordsList.size();j++) { CChannel ch=(CChannel)channelList[j] ;//Здесь создается копия элемента CChannel double val=lWordsList[j].toDouble(); ch.valueList.insert(dt,val); channelList[j]=ch;//пытаюсь внести изменения в список и здесь программа начинает дико тормозить } Код: CChannel ch=(CChannel)channelList[j]; оказывается создается копия элемента CChannel, и все, что я делаю с этой копией никак не влияет на реальный элемент в списке каналов channelList. Поэтому после всех изменений копии, присваиваю ее j-му элементу списка. Все вроде работает, но проблема в том, что на операторе Код: channelList[j]=ch; программа начинает дико тормозить. Без этого оператора 10-мегабайтный файл считывается за 3 сек, с этим оператором - счет идет на часы. Как решить проблему? Как внести изменения в элемент напрямую? Или что-то еще? Название: Re: Изменение элементов контейнеров Отправлено: Igors от Август 10, 2017, 12:41 CChannel & ch = ..
Название: Re: Изменение элементов контейнеров Отправлено: Bolonat от Август 10, 2017, 12:48 CChannel & ch = .. Спасибо! :) |