PureBasic

PushMapPosition()

Синтаксис

PushMapPosition(Map())

Описание


Запоминает текущий элемент (если он есть) Хеш-карты Map(), чтобы впоследствии к нему можно было вернуться с помощью функции PopMapPosition(). Позиция запоминается в структуре стека, поэтому возможны многочисленные вызовы этой функции.

Параметры

Map() Имя используемой Хеш-карты, созданной с помощью функции NewMap. Вы должны указать скобки после имени Хеш-карты.

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

Ничего.

Комментарии

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

Примечание. Нельзя удалять элемент используя команды DeleteMapElement() или ClearMap(), если он был запомнен как 'текущий' с помощью PushMapPosition() . Это может привести к сбою при вызове PopMapPosition(), поскольку память выделенная для элементов больше недействительна.

Пример

NewMap Numbers()
Numbers("A") = 1
Numbers("B") = 2
Numbers("C") = 5
Numbers("D") = 3
Numbers("E") = 2
Numbers("F") = 5

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

ForEach Numbers()
    Debug Numbers()
Next

См. также

PopMapPosition(), FindMapElement(), NextMapElement(), ResetMap(), ForEach

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

Все

<- PopMapPosition() - Оглавление Map - ResetMap()->