Qt Reference Documentation

- Qt 4.8
- ALL VERSIONS

- A
- A
- A
- Print

# QPair Class Reference

The QPair class is a template class that stores a pair of items. More...

     #include <QPair>

- List of all members, including inherited members

## Public Types

typedef | first_type
typedef | second_type

## Public Functions

| QPair ()
| QPair ( const T1 & value1, const T2 & value2 )
QPair<T1, T2> & | operator= ( const QPair<T1, T2> & other )

## Public Variables

T1 | first
T2 | second

## Related Non-Members

QPair<T1, T2> | qMakePair ( const T1 & value1, const T2 & value2 )
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 )

## Detailed Description

The QPair class is a template class that stores a pair of items.

QPair<T1, T2> can be used in your application if the STL `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 generic container.

Here's an example of a QPair that stores one QString and one `double` value:

     QPair<QString, double> pair;

The components are accessible as public data members called first and second. For example:

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

QPair's template data types (T1 and T2) must be 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.

See also Container Classes.

## Member Type Documentation

### typedef QPair::first_type

The type of the first element in the pair (T1).

See also first.

### typedef QPair::second_type

The type of the second element in the pair (T2).

See also second.

## Member Function Documentation

### QPair::QPair ()

Constructs an empty pair. The `first` and `second` elements are initialized with default-constructed values.

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

Constructs a pair and initializes the `first` element with value1 and the `second` element with value2.

See also qMakePair().

### QPair<T1, T2> & QPair::operator= ( const QPair<T1, T2> & other )

Assigns other to this pair.

## Member Variable Documentation

### T1 QPair::first

The first element in the pair.

### T2 QPair::second

The second element in the pair.

## Related Non-Members

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

Returns a QPair<T1, T2> that contains value1 and value2. Example:

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

This is equivalent to QPair<T1, T2>(value1, value2), but usually requires less typing.

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

Returns true if p1 is not equal to p2; otherwise returns false. Two pairs compare as not equal if their `first` data members are not equal or if their `second` data members are not equal.

This function requires the T1 and T2 types to have an implementation of `operator==()`.

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

Returns true if p1 is less than p2; otherwise returns false. The comparison is done on the `first` members of p1 and p2; if they compare equal, the `second` members are compared to break the tie.

This function requires the T1 and T2 types to have an implementation of `operator<()`.

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

Writes the pair pair to stream out.

This function requires the T1 and T2 types to implement `operator<<()`.

See also Serializing Qt Data Types.

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

Returns true if p1 is less than or equal to p2; otherwise returns false. The comparison is done on the `first` members of p1 and p2; if they compare equal, the `second` members are compared to break the tie.

This function requires the T1 and T2 types to have an implementation of `operator<()`.

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

Returns true if p1 is equal to p2; otherwise returns false. Two pairs compare equal if their `first` data members compare equal and if their `second` data members compare equal.

This function requires the T1 and T2 types to have an implementation of `operator==()`.

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

Returns true if p1 is greater than p2; otherwise returns false. The comparison is done on the `first` members of p1 and p2; if they compare equal, the `second` members are compared to break the tie.

This function requires the T1 and T2 types to have an implementation of `operator<()`.

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

Returns true if p1 is greater than or equal to p2; otherwise returns false. The comparison is done on the `first` members of p1 and p2; if they compare equal, the `second` members are compared to break the tie.

This function requires the T1 and T2 types to have an implementation of `operator<()`.

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

Reads a pair from stream in into pair.

This function requires the T1 and T2 types to implement `operator>>()`.

See also Serializing Qt Data Types.