Библиотеки qt и stl. Иерархия объектов, коллекция, итераторы
Download 0,9 Mb.
|
1671980777134 Лаб раб 4п
- Bu sahifa navigatsiya:
- Использование контейнерных классов библиотеки Qt.
- QVector
- QList
typedef void(*PF)(QObject*,< дополнительные параметры>);
Функция имеет обязательный параметр типа QObject или QObject*, через который ей передается объект, для которого необходимо выполнить определенные действия. Метод-итератор объявляется следующим образом: void CCollection::ForEach(PF action,< дополнительные параметры >); где action − единственный обязательный параметр-указатель на функцию, которая вызывается для каждого элемента группы; дополнительные параметры − передаваемые вызываемой функции параметры. Затем определяется указатель на функцию и инициализируется передаваемой итератору функцией. PF pf=myfunc; Тогда итератор будет вызываться, например, для дополнительного параметра типа int, так: gr.ForEach(pf,25); Здесь gr − объект-коллекция. Использование контейнерных классов библиотеки Qt. Для реализации простого списка можно использовать контейнерные классы, предоставляемые библиотеками STL и Qt. Рассмотрим использование контейнерных классов QVector и QList (библиотека Qt) для организации списка студентов и преподавателей. Оба класса входят в ядро библиотеки Qt и для их использования нужно изменить файл проекта следующим образом. Класс QVector <T> представляет собой структуру данных, очень похожую на обычный массив. Однако использование класса вектора предоставляет некоторые преимущества по сравнению с обычным массивом - например, можно получить количество содержащихся в нем элементов или динамически изменить его размер. Кроме того, этот контейнер, по сравнению с другими, наиболее экономично расходует память. Для добавления элементов в конец последовательного контейнера можно воспользоваться методом push_back(). К элементам вектора можно обратиться как посредством оператора индексации [], так и при помощи итератора. Размер вектора можно задать в конструкторе при его создании. По умолчанию только что созданный вектор будет иметь размер, равный 0, так как он не содержит ни одного элемента. Изменить его размер можно либо добавив к нему элементы, либо вызвав метод resize (). Список QList<Т>. Список - это структура данных, представляющая собой упорядоченный набор связанных друг с другом элементов. Преимущество списков перед векторами и очередями состоит в том, что вставка и удаление элементов в любой позиции происходит эффективнее, поскольку для выполнения этих операций изменяется только минимальное количество указателей, исключение составляет лишь вставка элемента в центр списка. Но есть и недостаток - списки плохо приспособлены для поиска определенного элемента по индексу, и для этой цели лучше использовать векторы. Списки реализует класс QList Пример использования классов QList<T> и QVector<T> Download 0,9 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling