Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизЧто лучше? Найти похожие ветки
← →
DesWind (2008-07-04 04:07) [0]Кольцевой буфер или очередь реализуемая через Move?
← →
Zeqfreed © (2008-07-04 04:11) [1]Лучше чем что?
← →
DesWind (2008-07-04 04:19) [2]Что быстрее и при каком размере. Точнее что целесообразнее использовать: копирование памяти или указатель на элемент в массиве. Например если нужно перемножать два массива, один постоянный массив чисел другой буфер (кольцевой или очередь).
← →
Zeqfreed © (2008-07-04 04:29) [3]Что такое перемножение массивов? Не вижу как во время этой операции изменяется количество элементов массива и следовательно как в таком случае выбор реализации повлияет на производительность.
← →
DesWind (2008-07-04 04:37) [4]Один из массивов - поток, задача - фильтрация.
← →
Zeqfreed © (2008-07-04 04:44) [5]До тех пор пока вы, многоуважаемый автор, будете играть в загадки, мы вам помочь не сможем :)
Что значит массив — поток? Как связаны фильтрация и умножение?
Вообще, если данные в массив добавляются поэлементно, то я бы выбрал кольцевой буфер. А если они поступают большими блоками, то целесообразно, пожалуй, использовать перемещение кусков массива.
← →
DesWind (2008-07-04 04:55) [6]В загадки не играл - наверно уже сплю.
Поэлементно добавляются, но я не могу придумать нормальной реализации. Как подумаю что надо перепрыгивать из конца в начало - дрожь берет. А фильтр, вообще-то, и есть чего-то там "линейная комбинация".
← →
Zeqfreed © (2008-07-04 04:56) [7]> DesWind (04.07.08 04:55) [6]
> перепрыгивать из конца в начало
Это и есть вся реализация :)
← →
DesWind (2008-07-04 05:08) [8]Понатыкать if-ов не наш путь )))) Да просто хочется одной командой, вот и ищу себе оправдание.
← →
Zeqfreed © (2008-07-04 05:14) [9]> DesWind (04.07.08 05:08) [8]
Один иф. В чем проблема?метод КольцевойБуфер.добавитьЭлемент(Элемент : ТЭлементКольцевогоБуфера);
начать
если Курсор.Позиция >= Вместимость тогда
Курсор.Позиция := 0;
Буфер[Курсор.Позиция] := Элемент;
Инкрементировать(Курсор.Позиция);
кончить
← →
Наиль © (2008-07-04 09:30) [10]Нахождение следующего индекса в круговом буфере
Index:=(Index-MinIndex+1) mod (MaxIndex-MinIndex+1)+MinIndex;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c