Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Qt.docx
Скачиваний:
13
Добавлен:
15.09.2019
Размер:
52.86 Кб
Скачать

Методы контейнера qSet:

intersect()

удаляет элементы множества не присутствующее в переданном множестве

reserve()

задает размер ХЕШ таблицы

squeeze()

уменьшает объема внутренней ХЕШ таблицы для уменьшения используемого объема памяти

subtract()

удаляет все элементы множества, присутствующие в переданном множестве

toList()

возвращает объект контейнера qList, содержащего элементы, находящиеся в объекте контейнера QSet

unite()

объединяет элементы множества

Итераторы

Итераторы предназначены для перемещения по элементам контейнера. Они позволяют абстрагироваться от структуры данных контейнеров.

QT предоставляет 2 стиля итераторов:

  1. итераторы в стиле Java

  2. итераторы в стиле STL

В качестве альтернативы итераторам существует вариант обхода элементов при помощи оператора цикл foreach.

Итераторы в стиле Java

Эти итераторы были разработаны для программистов, не имеющих опыта работы с контейнерами STL.

Основным их отличием является то, что они указывают не на сам элемент, а на двух его соседей. Т.е. в начале итератор будет указывать на положение перед первым элементов контейнера, и с каждый вызовом метода Next() будет перемещать его на одну позицию вперед.

Итераторы в стиле Java представляют собой объекты. Их использование делает код более компактным чем при использовании операторов STL.

Методы QListIterator:

toFront()

перемещает итератор в начало списка

toBack()

перемещает итератор в конец списка

hasNext()

возвращает значение true, если итератор не достиг конца списка

next()

возвращает значение следующего элемента списка и перемещает итератор на одну позицию дальше

peekNext()

просто возвращает следующие значения без изменения позиции итератора

hasPrevious()

возвращает значение true, если итератор не достиг начала списка

peekPrevious()

просто возвращает предыдущие значения без изменения позиции итератора

FindNext()

поиск заданного элемента в прямом направлении

FindPrevious()

поиск заданного элемента в обратном направлении

Если необходимо произвести изменения в процессе прохождения итератором элементов, то для этого необходимо воспользоваться изменяющимися итераторами.

Классы таких итераторов представлены ниже.

QMutableListIterator, QMutableHashIterator, QMutableLinkedListIterator, QMutableMapIterator, QMutableVectorIterator

remove()

удаляет элемент

insert()

производит вставка элемента в текущие позиции

setValue()

присваивает конкретному элементы другое значение

Итераторы в стиле stl

  1. вызов метода begin из объекта контейнера возвращает итератор, указывающий на первый его элемент, а вызов метода end возвращает итератор, указывающий на конец контейнера

  2. операторы ++ и -- объекты итератора производят перемещения на следующий и предыдущий элементы соответственно

При прохождении элементов в обратном порядке (--), необходимо помнить, что оно НЕ аналогично ++ и цикл должен выглядеть иначе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]