반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

코딩하기 좋은날

C++ Pair 클래스 본문

C++

C++ Pair 클래스

huiung 2019. 1. 13. 12:13
반응형

저는 평범한 대학생입니다. 잘못된 부분이 있다면 알려주시면 확인 후 바로 수정하겠습니다.

 

 

오늘은 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;
	
}

 

 

반응형