PureBasic

PushListPosition()

Синтаксис

PushListPosition(List())

Описание


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

Параметры

List() Имя используемого Списка, созданного с помощью функции NewList. Вы должны указать скобки после имени Списка.

Возвращаемое значение

Ничего.

Комментарии

Эта функция позволяет запоминать текущий элемент, что даёт возможность выполнить итерацию по Списку с помощью NextElement() или ForEach, а после итерации вернуться к запомненному ранее с помощью команды PopListPosition() текущему элементу. Для этой функции можно выполнить несколько вызовов, если каждый из них позже будет уравновешен соответствующим вызовом PopListPosition().

Примечание. Запрещается удалять запомненный с помощью PushListPosition() элемент, используя команды DeleteElement() или ClearList(). Это может привести к сбою при вызове PopListPosition() потому что память выделенная для элемента больше не действительна.

Пример

NewList Numbers()
AddElement(Numbers()): Numbers() = 1
AddElement(Numbers()): Numbers() = 2
AddElement(Numbers()): Numbers() = 5
AddElement(Numbers()): Numbers() = 3
AddElement(Numbers()): Numbers() = 5
AddElement(Numbers()): Numbers() = 2

; Удаление дублирующих значений с использованием вложенной итерации
;
ForEach Numbers()
    Value = Numbers()
    PushListPosition(Numbers())
    While NextElement(Numbers())
        If Numbers() = Value
            DeleteElement(Numbers()) ; Удаляются только элементы, которые не могли быть запомненными в PushListPosition()
        EndIf
    Wend
    PopListPosition(Numbers())
Next

ForEach Numbers()
    Debug Numbers()
Next

См. также

PopListPosition(), SelectElement(), ChangeCurrentElement(), NextElement(), PreviousElement(), ForEach

Поддерживаемые OS

Все

<- PreviousElement() - Оглавление List - ResetList()->