코딩하기 좋은날
C++ Pair 클래스 본문
반응형
저는 평범한 대학생입니다. 잘못된 부분이 있다면 알려주시면 확인 후 바로 수정하겠습니다.
오늘은 C++에서 자주 사용되는 클래스인 Pair 클래스에 대해서 소개하려고 합니다.
- Pair
- Pair의 뜻처럼 STL에서 데이터 '쌍'을 표현할 때 사용이 됩니다.
- <utility> 헤더파일에 존재하고 있으며, 보통 다른 STL컨테이너와 함께 사용이 되는데 그럴 때는 다른 STL의 헤더에 포함이 되어 있으므로
따로 선언 해주지 않아도 됩니다.
- 선언 방식은 pair<typename1, typename2> p; 의 형태로 클래스를 선언하며 앞의 글에서 map에 insert 할시 make_pair 함수를 이용한 적이 있는데
p = make_pair(변수1, 변수2); 의 형태로 변수1과 변수2가 들어간 pair를 p에 넣을 수 있습니다.
- 첫번째 변수에 접근 할 때는 p.first , 두번째 변수에 접근 할 때는 p.second 의 형식으로 접근 할 수 있습니다.
- 정렬 알고리즘을 통해 정렬이 가능합니다.(첫번째 인자를 우선으로 비교하고 첫번째 인자가 같으면 두번째 인자를 비교)
- ==, != , < , > 와 같은 연산자들이 오버로딩 되어있으므로 사용 할 수 있습니다. 마찬가지로 첫번째 인자를 우선으로 비교하고 같다면 두번째 인자를 비교합니다.
c++11 부터는 단순히 {값1, 값2} 와 같이 선언해서 사용 하실 수 있습니다.
ex) vector<pair<int, int> > v;
v.push_back( {1, 2} );
추가적인 정보는 위의 사이트에서 확인하면 될 것 같습니다.
다음은 pair 클래스의 테스트 코드입니다.
#include<iostream>
#include<utility>
#include<string>
using namespace std;
int main(void) {
pair<string, int> p1("a", 1);
pair<string, int> p2;
pair<string, int> p3("a", 1);
p2 = make_pair("b", 2);
cout<<"p1 first:"<<p1.first<<" p1 second:"<<p1.second<<endl;
cout<<"p2 first:"<<p2.first<<" p2 second:"<<p2.second<<endl;
cout<<(p1!=p2)<<endl;
cout<<(p1==p2)<<endl;
cout<<(p1==p3)<<endl;
return 0;
}
반응형
'C++' 카테고리의 다른 글
C++ STL컨테이너 구조 - list,multimap (0) | 2019.01.14 |
---|---|
C++ STL 기본 컨테이너 구조(스택,큐,사전,우선순위 큐,집합,벡터) -2 (0) | 2019.01.12 |
C++ STL 기본 컨테이너 구조(스택,큐,사전,우선순위 큐,집합) -1 (0) | 2019.01.12 |