простой способ сохранить последние n элементов в очереди для VB6? - PullRequest
2 голосов
/ 08 января 2012

Я пытаюсь сохранить последние n элементов из изменяющегося списка элементов x (где x >> n)

Я узнал о методе deque с фиксированной длинойна других языках программирования.Мне было интересно, есть ли что-то подобное для VB6

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Создать класс, который расширяет инкапсулированную коллекцию.

Добавить в конце (анонимно), извлечь и удалить с начала (индекс 1).В качестве части добавления проверьте настройку свойства MaxDepth (или, если хотите, жестко закодируйте его) и, если Collection.Count превысит его, удалите лишний элемент.

Или просто жестко закодируйте все это встроенным, если класс является тупиком дляты.

Это довольно рутина.

0 голосов
/ 29 мая 2014

Вот мое самое простое решение:

    For i = n - 1 To 1 Step -1
       arrayX(i) = arrayX(i - 1)
    Next i
       arrayX(0) = latestX

Где:

  • arrayX = массив значений
  • n = количество элементов массива
  • latestX = последнее значение интереса (предполагается, что весь блок кода также в другом цикле)
0 голосов
/ 08 января 2012

Единственное, о чем я могу думать, это, возможно, перебирать последние 5 значений динамического массива, используя что-то вроде:

For UBound(Array) - 5 To UBound(Array)
    'Code to store or do the desired with these values
Loop

Извините, у меня нет определенного ответа, но, надеюсь, это может помочь.

...