- •Иерархия объектов в Qt
- •Мета-объектная информация
- •Недостатки и преимущества использования сигналов и слотов
- •Сигналы.
- •Соединение и разъединение объектов.
- •Общие методы управления последовательных контейнеров
- •Методы контейнера qVector
- •Методы контейнера qList:
- •Методы контейнера Qstack:
- •Методы контейнера qQueue:
- •Методы управления ассоциативными контейнерами:
- •Методы контейнера qMap:
- •Методы контейнера qHash:
- •Методы контейнера qSet:
- •Итераторы
- •Итераторы в стиле Java
- •Итераторы в стиле stl
- •Принцип работы с оператором foreach
- •Компоновка виджетов на форме.
- •Разделители
- •Области с прокруткой
Методы управления ассоциативными контейнерами:
contains() |
возвращает true в случае, если контейнер содержит элемент с заданным ключом; в противном случае возвращает false |
erase() |
удаляет элемент из контейнера в соответствии с переданным итератором |
find() |
осуществляет поиск элемента по значению; возвращает в случае успеха итератор, указывающий на этот элемент; в случае неудачи итератор указывает на “end()” |
insertMulti() |
вставляет в контейнер новый элемент; данный метод отсутствует в классе QSet() |
key() |
возвращает первый ключ в соответствии с переданным значением |
keys() |
возвращает все ключи, содержащиеся в контейнере |
take() |
удаляет элемент из контейнера в соответствии с переданным ключом и возвращает копию его значения; не работает в QSet() |
unite() |
добавляет элемент одного контейнера в другой |
values() |
возвращает список всех значений, находящихся в контейнере |
Словари QMap и QMultiMap - в контейнеры этого типа заносятся элементы вместе с ключами, по которым их можно найти. Ключами могут быть значения любого типа. QMultiMap наследует QMap и ориентирован на структуры, в которых одному ключу может соответствовать несколько значений. Интерфейс QMultiMap практически полностью соответствует QMultiHash.
Методы контейнера qMap:
lowerBound() |
возвращает итератор, указывающий на первый элемент с заданным ключом |
toStdMap() |
возвращает стандартный словарь STL с элементами, находящимися в объекте QMap() |
upperBound() |
возвращает итератор, указывающий на последний элемент с заданным ключом |
ХЕШ QHash и QMultiHash - функциональность ХЕШа очень похожа на QMap с той лишь разницей, что вместо сортировки по ключу этот класс использует ХЕШ таблицу. Это позволяет осуществлять поиск значений гораздо быстрее. Класс qMultiHash() унаследован от класса qHash() и ориентирован на структуры, в которых одному ключу может соответствовать несколько значений.
Методы контейнера qHash:
capacity() |
возвращает размер ХЕШ таблицы |
reserve() |
задает размер ХЕШ таблицы |
squeeze() |
уменьшает объем внутренней ХЕШ таблицы для уменьшения используемого объема памяти |
qHash() |
должна возвращать число, которое должно быть уникальным для каждого находящегося в ХЕШе элемента |
Множества QSet – неупорядоченное множество, базируется на использовании ХЕШ таблицы, но является вырожденным ее вариантом, т.к. с ключами не связывается никакое значение. Его главная задача заключается в хранении только ключей, т.е. множество может использоваться в качестве неупорядоченного списка для быстрого поиска данных. Множество позволяет быстро получать и добавлять значения