Рубрики

Pair in C ++ Стандартная библиотека шаблонов (STL)

Контейнер пар представляет собой простой контейнер, определенный в заголовке <utility>, состоящий из двух элементов данных или объектов.

  • Первый элемент упоминается как «первый», а второй элемент как «второй», и порядок фиксирован (первый, второй).
  • Пара используется для объединения двух значений, которые могут различаться по типу. Пара предоставляет способ хранения двух разнородных объектов как единого блока.
  • Пара может быть назначена, скопирована и сравнена. Массив объектов, размещенных в карте или hash_map, по умолчанию имеет тип «pair», в котором все «первые» элементы являются уникальными ключами, связанными с их «вторыми» объектами-значениями.
  • Для доступа к элементам мы используем имя переменной, за которым следует оператор точки, за которым следует ключевое слово first или second.

Синтаксис:

 pair (data_type1, data_type2) Pair_name;

// Программа CPP для иллюстрации пары STL
#include <iostream>
#include <utility>

using namespace std;

  

int main()

{

    pair <int, char> PAIR1 ;

  

    PAIR1.first = 100;

    PAIR1.second = 'G' ;

  

    cout << PAIR1.first << " " ;

    cout << PAIR1.second << endl ;

  

    return 0;

}

Выход:

100 G

Инициализация пары

Мы также можем инициализировать пару.
Синтаксис:

pair (data_type1, data_type2) Pair_name (value1, value2) ;

Различные способы инициализации пары:

pair  g1;         //default
pair  g2(1, 'a');  //initialized,  different data type
pair  g3(1, 10);   //initialized,  same data type
pair  g4(g3);    //copy of g3

Другой способ инициализации пары — использование функции make_pair ().

g2 = make_pair(1, 'a');

// Программа CPP для иллюстрации инициализации пары STL
#include <iostream>
#include <utility>

using namespace std;

  

int main()

{

    pair <string,double> PAIR2 ("GeeksForGeeks", 1.23);

  

    cout << PAIR2.first << " " ;

    cout << PAIR2.second << endl ;

      

return 0;

}

Выход:

GeeksForGeeks 1.23

Примечание: если не инициализировано, первое значение пары автоматически инициализируется.

// Программа CPP для иллюстрации автоинициализации пары STL
#include <iostream>
#include <utility>

  

using namespace std;

  

int main()

{

    pair <int, double> PAIR1 ;

    pair <string, char> PAIR2 ;

  

    cout << PAIR1.first ;  // инициализируется в 0

    cout << PAIR1.second ; // инициализируется в 0

  

    cout << " ";

  

    cout << PAIR2.first ;  // ничего не печатается т.е. NULL

    cout << PAIR2.second ; // ничего не печатается т.е. NULL

  

    return 0;

}

Выход:

00

Функции члена

  1. make_pair () : эта функция шаблона позволяет создавать пару значений без явной записи типов.
    Синтаксис:
    Pair_name = make_pair (value1,value2);

    #include <iostream>
    #include <utility>

    using namespace std;

      

    int main()

    {

        pair <int, char> PAIR1 ;

        pair <string, double> PAIR2 ("GeeksForGeeks", 1.23) ;

        pair <string, double> PAIR3 ;

      

        PAIR1.first = 100;

        PAIR1.second = 'G' ;

      

        PAIR3 = make_pair ("GeeksForGeeks is Best",4.56);

      

        cout << PAIR1.first << " " ;

        cout << PAIR1.second << endl ;

      

        cout << PAIR2.first << " " ;

        cout << PAIR2.second << endl ;

      

        cout << PAIR3.first << " " ;

        cout << PAIR3.second << endl ;

      

        return 0;

    }

    Выход:

    100 G
    GeeksForGeeks 1.23
    GeeksForGeeks is Best 4.56
    
  2. Операторы (=, ==,! =,> =, <=): мы также можем использовать операторы с парами.
    • using equal (=): назначает новый объект для парного объекта.
      Синтаксис:
      pair& operator= (const pair& pr);

      Это назначает pr в качестве нового содержимого для объекта пары. Первому значению присваивается первое значение pr, а второму значению присваивается второе значение pr.

    • Оператор сравнения (==) с парой: для заданных двух пар, скажем, пара1 и пара2, оператор сравнения сравнивает первое значение и второе значение этих двух пар, т. Е. Если аргумент pair1.first равен pair2.first или нет, а если pair1.second равно pair2.second или нет.
    • Оператор не равно (! =) С парой: для заданных двух пар, скажем, пара1 и пара2, оператор! = Сравнивает первые значения этих двух пар, т. Е. Если pair1.first равен pair2.first или нет, если они равны, то он проверяет вторые значения обоих.
    • Логические (> =, <=) операторы с парой: для заданных двух пар, скажем, пара1 и пара2, =,> также можно использовать с парами. Возвращает 0 или 1, сравнивая только первое значение пары.

    ,

    // код CPP для иллюстрации операторов в паре
    #include <iostream>
    #include<utility>

    using namespace std;

      

    int main()

    {

        pair<int, int>pair1 = make_pair(1, 12);

        pair<int, int>pair2 = make_pair(9, 12);

      

      

        cout << (pair1 == pair2) << endl;

        cout << (pair1 != pair2) << endl;

        cout << (pair1 >= pair2) << endl;

        cout << (pair1 <= pair2) << endl;

        cout << (pair1 > pair2) << endl;

        cout << (pair1 < pair2) << endl;

      

        return 0;

    }

    Выход:

    0
    1
    0
    1
    0
    1
    
  3. swap: эта функция заменяет содержимое одного парного объекта на содержимое другого парного объекта. Пары должны быть одного типа.
    Синтаксис:
    pair1.swap(pair2) ;

    Для двух заданных пар, скажем, pair1 и pair2 одного типа, функция swap поменяет pair1.first с pair2.first и pair1.second с pair2.second.

    #include <iostream>
    #include<utility>

      

    using namespace std;

      

    int main()

    {

        pair<char, int>pair1 = make_pair('A', 1);

        pair<char, int>pair2 = make_pair('B', 2);

      

        cout << "Before swapping:\n " ;

        cout << "Contents of pair1 = " << pair1.first << " " << pair1.second ;

        cout << "Contents of pair2 = " << pair2.first << " " << pair2.second ;

        pair1.swap(pair2);

      

        cout << "\nAfter swapping:\n ";

        cout << "Contents of pair1 = " << pair1.first << " " << pair1.second ;

        cout << "Contents of pair2 = " << pair2.first << " " << pair2.second ;

      

        return 0;

    }

    Выход:

    Before swapping:
    Contents of pair1 = (A, 1)
    Contents of pair2 = (B, 2)
    
    After swapping:
    Contents of pair1 = (B, 2)
    Contents of pair2 = (A, 1)
    

// Программа CPP для иллюстрации пары в STL
#include <iostream>
#include <utility> 
#include <string> 

using namespace std;

  

int main()

{

    pair <string, int> g1;

    pair <string, int> g2("Quiz", 3);

    pair <string, int> g3(g2);

    pair <int, int> g4(5, 10);

  

    g1 = make_pair(string("Geeks"), 1);

    g2.first = ".com";

    g2.second = 2;

  

    cout << "This is pair g" << g1.second << " with "

        << "value " << g1.first << "." << endl << endl;

  

    cout << "This is pair g" << g3.second

        << " with value " << g3.first

        << "This pair was initialized as a copy of "

        << "pair g2" << endl << endl;

  

    cout << "This is pair g" << g2.second

        << " with value " << g2.first

        << "\nThe values of this pair were"

        << " changed after initialization."

        << endl << endl;

  

    cout << "This is pair g4 with values "

        << g4.first << " and " << g4.second

        << " made for showing addition. \nThe "

        << "sum of the values in this pair is "

        << g4.first+g4.second

        << "." << endl << endl;

  

    cout << "We can concatenate the values of"

        << " the pairs g1, g2 and g3 : "

        << g1.first + g3.first + g2.first << endl << endl;

  

    cout << "We can also swap pairs "

        << "(but type of pairs should be same) : " << endl;

    cout << "Before swapping, " << "g1 has " << g1.first

        << " and g2 has " << g2.first << endl;

    swap(g1, g2);

    cout << "After swapping, "

        << "g1 has " << g1.first << " and g2 has " << g2.first;

  

    return 0;

}

Выход:

This is pair g1 with value Geeks.

This is pair g3 with value QuizThis pair was initialized as a copy of pair g2

This is pair g2 with value .com
The values of this pair were changed after initialization.

This is pair g4 with values 5 and 10 made for showing addition. 
The sum of the values in this pair is 15.

We can concatenate the values of the pairs g1, g2 and g3 : GeeksQuiz.com

We can also swap pairs (but type of pairs should be same) : 
Before swapping, g1 has Geeks and g2 has .com
After swapping, g1 has .com and g2 has Geeks

Эта статья предоставлена МАЖАР ИМАМ ХАН . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Pair in C ++ Стандартная библиотека шаблонов (STL)

0.00 (0%) 0 votes