본문 바로가기
Develop/Ps

[C++] STL pair 사용법

by J-rain 2023. 7. 18.

pair 사용법

우선 pair을 사용하기위해서는 utility 헤더파일이 필요한데 이미 vector 헤더파일에 포함되어있기 때문에

#include<vector>만 추가하면 사용할 수 있다.

pair<int, int> p; // int 타입 데이터 2개를 관리할 수 있는 pair 클래스의 p객체
pair<int, double> p;// int타입과 double 타입 데이터를 한번에 관리할 수 있는 pair 클래스의 p객체
pair<double, double> p;// 각 각의 double 타입 데이터를 한번에 관리할 수 있는 객체
pair<int, char> p;// int 타입과 char타입 테이터를 하나로 묶어서 관리할 수 있는 p객체

 

  • pair<type1,type2> p
    pair 클래스의 객체 p를 생성합니다. 객체 이름은 p가 아니어도 상관없다.
  • p.first
    p의 첫번째 인자를 반환한다.
  • p.second
    p의 두번째 인자를 반환한다.
  • make_pair(값1, 값2)
    값1, 값2를 한쌍으로 하는 pair를 만들어서 반환한다.

 

사용예를 들어보면

#include<iostream>
#include<vector>

using namespace std;

void compare(pair<int, int> a, pair<int, int> b)
{
    if (a > b)
        cout << "첫 번째 인자가 더 큼." << endl;
    else
        cout << "두 번째 인자가 더 큼." << endl<<endl;
}
int main()
{
    pair<int, int> a;
    pair<int, int> b;

    a = make_pair(2, 4);
    b = make_pair(1, 5);
    
    cout << "<a의 first가 b의 frist보다 큰 경우>" << endl;
    compare(a, b); //first를 비교

    a = make_pair(2, 7);
    b = make_pair(2, 10);
    
    cout << "<a의 first와 b의 frist가 같은 경우>" << endl;
    compare(a, b); //second를 비교

    return 0;
}

실행결과

 

응용

#include <iostream>
#include <vector>
#include <queue>

using namespace std;

int main()
{
    //////////선언////////
    pair<int, int> p;

    ////////응용///////

    p = make_pair(1, 2); //   p = {1, 2}; 와 같음
    vector<pair<string, int>> v;
    queue<pair<string, int>> q;

    v.push_back(make_pair("대한", 3));
    q.push({"민국", 2});
    auto temp = v.front(); // auto 변수 자료형 자동지정

    cout << "p: " << p.first << "," << p.second << '\n'; // p객체 출력

    for (int i = 0; i < v.size(); i++) // 벡터 인덱스로 출력
    {
        cout << "v: " << v[i].first << "," << v[i].second << '\n';
    }

    while (!q.empty()) // q출력
    {
        cout << "q: " << q.front().first << "," << q.front().second << '\n';
        q.pop();
    }
    cout << "temp: " << temp.first << "," << temp.second << '\n';  // temp 출력
    return 0;
}

 

실행결과

 

7568.cpp 참고

'Develop > Ps' 카테고리의 다른 글

[C++] STL list 사용법  (0) 2023.10.22
[C++] STL vector 사용법  (0) 2023.07.18
[C++] STL sort함수 사용법  (0) 2023.07.18
[C++] STL 스택(stack) 사용법  (0) 2023.04.13
[CS/C++] STL 덱(Deque) 사용법  (0) 2023.04.12

댓글