Namespaces
Variants

std::pair

From ko.cppreference.net
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐지됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
스왑 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
헤더 <utility>
template<
    class T1,
    class T2
> struct pair;

std::pair에 정의됨. 는 두 개의 이종 객체를 하나의 단위로 저장하는 방법을 제공하는 클래스 템플릿입니다. pair는 두 개의 요소를 가진 std::tuple

의 특수한 경우입니다. T1만약 T2과 pair 모두 비파괴적인 소멸자를 가진 cv-한정 클래스 타입(또는 그 배열)이 아니라면,

템플릿 매개변수

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을 개별 객체들로 언패킹
(함수 템플릿)