10. c++ STL pair

han811·2021년 2월 24일
0

c++

목록 보기
10/14
post-thumbnail
1. pair
  • 두 객체를 하나의 객체로 취급 할 수 있도록 묶어주는 class 입니다.
  • 데이터의 쌍을 표현하는데 사용됩니다.
  • utility 헤더에 존재합니다.
2. 멤버 함수
  • pair<[type1], [type2]> p
    사용할 데이터 type1,2를 넣고 그 타입의 pair 클래스를 만들어 줍니다.
  • p.fisrt
    p의 첫번째 인자를 반환해 줍니다.
  • p.second
    p의 두번째 인자를 반환해 줍니다.
  • make_pair(변수1, 변수2)
    변수1과 변수2가 들어간 pair를 만들어줍니다.
  • operator : ==,!=,<,>,<=,>= 등이 정의되어 있어서 사용 가능합니다.
  • sort 알고리즘으로 정렬이 가능합니다.
    이때 정렬의 기준은 첫번쨰 인자를 기준으로하고 첫번째 인자가 같으면 두번째 인자로 판단합니다.
3. example
#include<iostream>
#include<utility>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
 
int main(void){
    vector<pair<int, string> > v;
    
    v.push_back(pair<int, string>(3, "Dok2"));    
    v.push_back(pair<int, string>(6, "DMask"));    
    v.push_back(pair<int, string>(1, "Tiger JK"));    
    v.push_back(pair<int, string>(4, "Block"));    
    v.push_back(pair<int, string>(2, "banana"));    
    v.push_back(pair<int, string>(2, "apple"));    
    
    cout << "=== After sort === " << endl;
    
    vector<pair<int, string> >::iterator iter;
    for(iter = v.begin(); iter != v.end(); iter++){
        cout << "[" << iter->first << "," << iter->second << "]" << endl;
    }
    
    cout << endl;
    sort(v.begin(), v.end());
    cout << "=== After sort === " << endl;
    
    for(iter = v.begin(); iter != v.end(); iter++){
        cout << "[" << iter->first << "," << iter->second << "]" << endl;
    }
 
    return 0;    
}
  • 위와 같이 데이터를 쌍으로 표현하는데 사용됩니다.

Reference

profile
han811

0개의 댓글