Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
헤더 파일에 정의됨 <utility>
template <

class T1,
class T2

> struct pair ;

std::pair 는 두 개의 서로 다른 타입의 객체를 하나의 단위로 저장할 수 있게 해주는 클래스 템플릿입니다. 페어는 두 개의 요소를 가진 std::tuple 의 특별한 경우입니다.

T1 또는 T2 중 어느 것도 비트리비얼 소멸자를 가진, 가능하게 cv 한정된 클래스 타입이나 그 배열이 아닌 경우, pair 의 소멸자는 트리비얼합니다.

목차

템플릿 매개변수

T1, T2 - pair가 저장하는 요소들의 타입.

멤버 타입

멤버 타입 정의
first_type T1
second_type T2

멤버 객체

멤버 이름 타입
first T1
second T2

멤버 함수

새로운 pair 를 생성
(public member function)
내용을 할당
(public member function)
(C++11)
내용을 교환
(public member function)

비멤버 함수

인자 타입에 의해 결정된 타입의 pair 객체를 생성함
(함수 템플릿)
(C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20)
pair 내의 값들을 사전식으로 비교함
(함수 템플릿)
std::swap 알고리즘을 특수화함
(함수 템플릿)
pair 의 요소에 접근함
(함수 템플릿)

헬퍼 클래스

pair 의 크기를 구함
(클래스 템플릿 특수화)
pair 의 요소 타입을 구함
(클래스 템플릿 특수화)
pair 의 공통 참조 타입을 결정함
(클래스 템플릿 특수화)
pair 의 공통 타입을 결정함
(클래스 템플릿 특수화)
pair 에 대한 포맷팅 지원
(클래스 템플릿 특수화)

헬퍼 특수화

template < class T, class U >

constexpr bool enable_nonlocking_formatter_optimization < std :: pair < T, U >> =
enable_nonlocking_formatter_optimization < T > &&

enable_nonlocking_formatter_optimization < U > ;
(C++23부터)

이 특수화는 std::enable_nonlocking_formatter_optimization std::print std::println 의 효율적인 구현을 가능하게 하여, pair 객체를 출력할 때 T U 모두가 이를 활성화한 경우에 사용됩니다.

추론 가이드 (C++17부터)

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2796 C++98 pair 의 소멸자 트리비얼리티가 명시되지 않음 명시됨

참고 항목

(C++11)
서로 다른 타입의 요소들을 보관하는 고정 크기 컨테이너를 구현
(클래스 템플릿)
(C++11)
lvalue 참조들의 tuple 을 생성하거나 tuple을 개별 객체들로 언패킹
(함수 템플릿)