The pair container is a simple container defined in <utility> header consisting of two data elements or objects.

  • The first element is referenced as ‘first’ and the second element as ‘second’ and the order is fixed (first, second).
  • Pair is used to combine together two values which may be different in type. Pair provides a way to store two heterogeneous objects as a single unit.
  • Pair can be assigned, copied and compared. The array of objects allocated in a map or hash_map are of type ‘pair’ by default in which all the ‘first’ elements are unique keys associated with their ‘second’ value objects.
  • To access the elements, we use variable name followed by dot operator followed by the keyword first or second.

 

Commonly used Functions

Here are some function for pair template :

  • Operator = : assign values to a pair.
  • swap : swaps the contents of the pair.
  • make_pair() : create and returns a pair having objects defined by parameter list.
  • Operators( == , != , > , < , <= , >= ) : lexicographically compares two pairs.

 

Example

#include <iostream>
using namespace std;    
    
int main ()
{
  // Value init
  pair <string, double> product2 ("tomatoes",2.30);  

  // Copy constructor  
  pair <string,double> product3 (product2);          
  
  // Creats pair of integers
  pair<int,int> pair1, pair2;

  // Insert 
  pair1 = make_pair(1, 2);     

  pair2.first = 2;
  pair2.second = 4;
  
  // Prints 1, 1 being 1st element of pair1
  cout<< pair1.first << endl;  

  // Comparision
  cout << (pair1 == pair2) << endl; 
  cout << (pair1 != pair2) << endl; 
  cout << (pair1 >= pair2) << endl; 
  cout << (pair1 <= pair2) << endl; 
  cout << (pair1 > pair2) << endl; 
  cout << (pair1 < pair2) << endl; 

  // This function swaps the contents of one pair object with the contents of another pair object. 
  // The pairs must be of same type.
  pair1.swap(pair2); 
  
  return 0;
}