Spec-Zone.ru › Qt 5.14

Класс QPair

Класс QPair — это шаблонный класс, который хранит пару элементов. Подробнее...

Заголовок: #include <QPair>
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Типы публичного доступа

typedef first_type
typedef second_type

Функции публичного доступа

QPair(QPair<TT1, TT2> &&p)
QPair(const QPair<TT1, TT2> &p)
QPair(const T1 &value1, const T2 &value2)
QPair()
void swap(QPair<T1, T2> &other)
QPair<T1, T2> & operator=(const QPair<TT1, TT2> &p)
QPair<T1, T2> & operator=(QPair<TT1, TT2> &&p)

Публичные переменные

T1 first
T2 second

Связанные внешние члены

QPair<T1, T2> qMakePair(const T1 &value1, const T2 &value2)
void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs)
bool operator!=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
QDataStream & operator<<(QDataStream &out, const QPair<T1, T2> &pair)
bool operator<=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator>(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
QDataStream & operator>>(QDataStream &in, QPair<T1, T2> &pair)

Подробное описание

QPair<T1, T2> может использоваться в вашем приложении, если тип STL pair недоступен. Он хранит одно значение типа T1 и одно значение типа T2. Его можно использовать в качестве возвращаемого значения для функции, которая должна вернуть два значения, или в качестве типа значения обобщенного контейнера.

Вот пример QPair, который хранит одну QString и одно double значение:

QPair<QString, double> pair;

Компоненты доступны как публичные данные, называемые first и second. Например:

pair.first = "pi";
pair.second = M_PI;

Однако, практически всегда предпочтительнее определить небольшой структуру для хранения результата функции с несколькими возвращаемыми значениями. Структура тривиально обобщается на более чем два значения и позволяет использовать более описательные имена членов, чем first и second:

struct Variable {
    QString name;
    double value;
};
Variable v;
v.name = "pi";
v.value = M_PI;

Появление в C++11 автоматического вывода типа переменной (auto) смещает акцент с имени типа на имя функций и членов. Таким образом, QPair, подобно std::pair и std::tuple, в основном полезен в обобщенном (шаблонном) коде, где определение отдельного типа невозможно.

Шаблонные типы данных QPair (T1 и T2) должны быть типами данных, допускающими присваивание. Вы не можете, например, хранить QWidget в качестве значения; вместо этого храните указатель на QWidget (*QWidget). Некоторые функции имеют дополнительные требования; эти требования документированы для каждой функции индивидуально.

См. также Классы контейнеров.

Документация по типам членов

typedef QPair::first_type

Тип первого элемента в паре (T1).

См. также first.

typedef QPair::second_type

Тип второго элемента в паре (T2).

См. также second.

Документация по функциям членов

QPair::QPair(QPair<TT1, TT2> &&p)

Перемещающее создание экземпляра QPair, делая его указывающим на тот же объект, на который указывал p.

Эта функция была введена в Qt 5.2.

QPair::QPair(const QPair<TT1, TT2> &p)

Создаёт пару из другой пары p типов TT1 и TT2. Этот конструктор завершится неудачей, если first нельзя инициализировать из p.first или если second нельзя инициализировать из p.second.

Эта функция была введена в Qt 5.2.

См. также qMakePair().

QPair::QPair(const T1 &value1, const T2 &value2)

Создает пару и инициализирует first элемент значением value1, а second элемент — значением value2.

См. также qMakePair().

QPair::QPair()

Создаёт пустую пару. first и second элементы инициализируются значениями по умолчанию.

void QPair::swap(QPair<T1, T2> &other)

Меняет местами эту пару с other.

Эквивалентно

qSwap(this->first, other.first);
qSwap(this->second, other.second);

Перегрузки swap находятся в пространстве имен std, а также через поиск с аргументом (ADL) в пространстве имен T.

Эта функция была введена в Qt 5.5.

QPair<T1, T2> &QPair::operator=(const QPair<TT1, TT2> &p)

Копирует пару p в эту пару.

Эта функция была введена в Qt 5.2.

См. также qMakePair().

QPair<T1, T2> &QPair::operator=(QPair<TT1, TT2> &&p)

Перемещающее присваивание пары p в этот экземпляр пары.

Эта функция была введена в Qt 5.2.

Документация по переменным членов

T1 QPair::first

Первый элемент в паре.

T2 QPair::second

Второй элемент в паре.

Связанные нечлены

QPair<T1, T2> qMakePair(const T1 &value1, const T2 &value2)

Возвращает QPair<T1, T2>, содержащий value1 и value2. Пример:

QList<QPair<int, double> > list;
list.append(qMakePair(66, M_PI));

Это эквивалентно QPair<T1, T2>(value1, value2), но обычно требует меньше набора текста.

void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs)

Это перегруженный метод.

Меняет местами lhs и rhs.

Этот метод был добавлен в Qt 5.5.

bool operator!=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 не равно p2; в противном случае возвращает false. Два объекта QPair сравниваются как неравные, если их члены данных first не равны или если их члены данных second не равны.

Для работы этого метода типы T1 и T2 должны реализовывать operator==().

bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 меньше p2; в противном случае возвращает false. Сравнение выполняется по членам данных first p1 и p2; если они равны, сравниваются члены данных second для разрешения ничьи.

Для работы этого метода типы T1 и T2 должны реализовывать operator<().

QDataStream &operator<<(QDataStream &out, const QPair<T1, T2> &pair)

Записывает пару pair в поток out.

Для работы этого метода типы T1 и T2 должны реализовывать operator<<().

См. также Сериализация типов данных Qt.

bool operator<=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 меньше или равно p2; в противном случае возвращает false. Сравнение выполняется по членам данных first p1 и p2; если они равны, сравниваются члены данных second для разрешения ничьи.

Для работы этого метода типы T1 и T2 должны реализовывать operator<().

bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 равно p2; в противном случае возвращает false. Два объекта QPair сравниваются как равные, если их члены данных first сравниваются как равные и если их члены данных second сравниваются как равные.

Для работы этого метода типы T1 и T2 должны реализовывать operator==().

bool operator>(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 больше p2; в противном случае возвращает false. Сравнение выполняется по членам данных first p1 и p2; если они равны, сравниваются члены данных second для разрешения ничьи.

Для работы этого метода типы T1 и T2 должны реализовывать operator<().

bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)

Возвращает true , если p1 больше или равно p2; в противном случае возвращает false. Сравнение выполняется по членам данных first p1 и p2; если они равны, сравниваются члены данных second для разрешения ничьи.

Для работы этого метода типы T1 и T2 должны реализовывать operator<().

QDataStream &operator>>(QDataStream &in, QPair<T1, T2> &pair)

Считывает пару из потока in в pair.

Для работы этого метода типы T1 и T2 должны реализовывать operator>>().

См. также Сериализация типов данных Qt.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qpair.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API