| /**************************************************************************** |
| ** |
| ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). |
| ** All rights reserved. |
| ** Contact: Nokia Corporation (qt-info@nokia.com) |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** GNU Free Documentation License |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. |
| ** |
| ** Other Usage |
| ** Alternatively, this file may be used in accordance with the terms |
| ** and conditions contained in a signed written agreement between you |
| ** and Nokia. |
| ** |
| ** |
| ** |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \class QPair |
| \brief The QPair class is a template class that stores a pair of items. |
| |
| \ingroup tools |
| |
| QPair\<T1, T2\> can be used in your application if the STL \c |
| pair type is not available. It stores one value of type T1 and |
| one value of type T2. It can be used as a return value for a |
| function that needs to return two values, or as the value type of |
| a \l{Container classes}{generic container}. |
| |
| Here's an example of a QPair that stores one QString and one \c |
| double value: |
| |
| \snippet doc/src/snippets/code/doc_src_qpair.cpp 0 |
| |
| The components are accessible as public data members called \l |
| first and \l second. For example: |
| |
| \snippet doc/src/snippets/code/doc_src_qpair.cpp 1 |
| |
| QPair's template data types (T1 and T2) must be \l{assignable |
| data types}. You cannot, for example, store a QWidget as a value; |
| instead, store a QWidget *. A few functions have additional |
| requirements; these requirements are documented on a per-function |
| basis. |
| |
| \sa {Container Classes} |
| */ |
| |
| /*! \typedef QPair::first_type |
| |
| The type of the first element in the pair (T1). |
| |
| \sa first |
| */ |
| |
| /*! \typedef QPair::second_type |
| |
| The type of the second element in the pair (T2). |
| |
| \sa second |
| */ |
| |
| /*! \variable QPair::first |
| |
| The first element in the pair. |
| */ |
| |
| /*! \variable QPair::second |
| |
| The second element in the pair. |
| */ |
| |
| /*! \fn QPair::QPair() |
| |
| Constructs an empty pair. The \c first and \c second elements are |
| initialized with \l{default-constructed values}. |
| */ |
| |
| /*! |
| \fn QPair::QPair(const T1 &value1, const T2 &value2) |
| |
| Constructs a pair and initializes the \c first element with \a |
| value1 and the \c second element with \a value2. |
| |
| \sa qMakePair() |
| */ |
| |
| /*! |
| \fn QPair<T1, T2> &QPair::operator=(const QPair<T1, T2> &other) |
| |
| Assigns \a other to this pair. |
| */ |
| |
| /*! \fn bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is equal to \a p2; otherwise returns false. |
| Two pairs compare equal if their \c first data members compare |
| equal and if their \c second data members compare equal. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator==(). |
| */ |
| |
| /*! \fn bool operator!=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is not equal to \a p2; otherwise returns |
| false. Two pairs compare as not equal if their \c first data |
| members are not equal or if their \c second data members are not |
| equal. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator==(). |
| */ |
| |
| /*! \fn bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is less than \a p2; otherwise returns |
| false. The comparison is done on the \c first members of \a p1 |
| and \a p2; if they compare equal, the \c second members are |
| compared to break the tie. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator<(). |
| */ |
| |
| /*! \fn bool operator>(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is greater than \a p2; otherwise returns |
| false. The comparison is done on the \c first members of \a p1 |
| and \a p2; if they compare equal, the \c second members are |
| compared to break the tie. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator<(). |
| */ |
| |
| /*! \fn bool operator<=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is less than or equal to \a p2; otherwise |
| returns false. The comparison is done on the \c first members of |
| \a p1 and \a p2; if they compare equal, the \c second members are |
| compared to break the tie. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator<(). |
| */ |
| |
| /*! \fn bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) |
| |
| \relates QPair |
| |
| Returns true if \a p1 is greater than or equal to \a p2; |
| otherwise returns false. The comparison is done on the \c first |
| members of \a p1 and \a p2; if they compare equal, the \c second |
| members are compared to break the tie. |
| |
| This function requires the T1 and T2 types to have an |
| implementation of \c operator<(). |
| */ |
| |
| /*! |
| \fn QPair<T1, T2> qMakePair(const T1 &value1, const T2 &value2) |
| |
| \relates QPair |
| |
| Returns a QPair\<T1, T2\> that contains \a value1 and \a value2. |
| Example: |
| |
| \snippet doc/src/snippets/code/doc_src_qpair.cpp 2 |
| |
| This is equivalent to QPair<T1, T2>(\a value1, \a value2), but |
| usually requires less typing. |
| */ |
| |
| /*! \fn QDataStream &operator>>(QDataStream &in, QPair<T1, T2> &pair) |
| |
| \relates QPair |
| |
| Reads a pair from stream \a in into \a pair. |
| |
| This function requires the T1 and T2 types to implement \c operator>>(). |
| |
| \sa {Serializing Qt Data Types} |
| */ |
| |
| /*! \fn QDataStream &operator<<(QDataStream &out, const QPair<T1, T2> &pair) |
| |
| \relates QPair |
| |
| Writes the pair \a pair to stream \a out. |
| |
| This function requires the T1 and T2 types to implement \c operator<<(). |
| |
| \sa {Serializing Qt Data Types} |
| */ |