티스토리 뷰

c++/개념

pair

백수진 2021. 3. 21. 01:58

pair를 사용해 python의 튜플처럼 두가지 값을 한번에 저장할 수 있다.

<pair 사용법>

@ pair생성법

pair <type,type> 이름;

@ queue나 stack의 컨테이너와 함께 사용

- queue(or stack)<pair<type,type> q;

=> pair를 자료형처럼 사용하며 두가지 값을 pair가 가지고 있기에 두가지 자료형을 같이 적어줌

@ make_pair(값, 값)의 작업이 반드시 필요

q.push(make_pair(값, 값))의 꼴을 이용

@pair.front.first()와 pair.front().second

first와 second를 통해 make_pair(a,b)였다면 first값으로 a를 second값으로 b가 들어감

 

#include <iostream>
#include <queue>
#include <utility>
using namespace std;

int main()
{
	queue<pair<int, int>> q;
	int x, y;
	char z;

	q.push(make_pair(2, 10));
	q.push(make_pair(3, 11));
	q.push(make_pair(4, 12));
	q.push(make_pair(5, 13));
	q.push(make_pair(6, 14));

	while (!q.empty())
	{
		x = q.front().first;
		y = q.front().second;
		cout << x << ' ' << y << '\n';
		q.pop();
	}

	cout << "=======================" << '\n';

	//pair를 pair의 first or second에 집에 넣을 수 있음

	typedef pair <int, char> ci;

	queue<pair<int, ci>>Q;
	Q.push(make_pair(1, ci(10, 'A')));
	Q.push(make_pair(2, ci(20, 'B')));
	Q.push(make_pair(3, ci(30, 'C')));
	Q.push(make_pair(4, ci(40, 'D')));
	Q.push(make_pair(5, ci(50, 'E')));

	while (!Q.empty())
	{
		x = Q.front().first;
		y = Q.front().second.first;
		z = Q.front().second.second;
		cout << x << ' ' << y << ' ' << x << '\n';
		Q.pop();
	}

	return 0;

}

*tip

queue를 사용하기 위해서 queue 헤더파일을 사용해야함.

queue는 양쪽이 뚫려있는 구조이고 먼저들어간 것을 사용하려면 queue.first를 통해 사용이 가능.

'c++ > 개념' 카테고리의 다른 글

deque - 덱  (0) 2021.03.22
스택 컨테이너 사용법  (0) 2021.03.21
2차원 vector  (0) 2021.03.21