3.14. Класс pair

We use cookies. Read the Privacy and Cookie Policy

3.14. Класс pair

Класс pair (пара) стандартной библиотеки С++ позволяет нам определить одним объектом пару значений, если между ними есть какая-либо семантическая связь. Эти значения могут быть одинакового или разного типа. Для использования данного класса необходимо включить заголовочный файл:

#include utility

Например, инструкция

pair string, string author( "James", "Joyce" );

создает объект author типа pair, состоящий из двух строковых значений.

Отдельные части пары могут быть получены с помощью членов first и second:

string firstBook;

if ( Joyce.first == "James"

Joyce.second == "Joyce" )

firstBook = "Stephen Hero";

Если нужно определить несколько однотипных объектов этого класса, удобно использовать директиву typedef:

typedef pair string, string Authors;

Authors proust( "marcel", "proust" );

Authors joyce( "James", "Joyce" );

Authors musil( "robert", "musi1" );

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

class EntrySlot;

extern EntrySlot* 1ook_up( string );

typedef pair string, EntrySlot* SymbolEntry;

SymbolEntry current_entry( "author", 1ook_up( "author"));

// ...

if ( EntrySlot *it = 1ook_up( "editor" ))

{

current_entry.first = "editor";

current_entry.second = it;

}

(Мы вернемся к рассмотрению класса pair в разговоре о контейнерных типах в главе 6 и об обобщенных алгоритмах в главе 12.)