백준 문제풀이

C++ make_pair 함수 편하게 쓰기

요즘 문제를 풀면서 다른 사람의 코드를 보는게 매우 중요하다는걸 느끼고 있어서 맞았더라도 다른 사람들의 코드를 보곤 한다. (메모리 개선이나 풀이 방법의 효율성을 보려고)

 

이때... 매번 make_pair를 치는게 귀찮다고 생각하던 와중

이걸 구조체로 (중괄호로 묶어서) 바로 넣을 수 있다는 점을 발견했다...

https://www.acmicpc.net/board/view/41506 (관련 백준 게시판 글)

 

해당 게시글에도 적혀있지만, 알면 알수록 C++의 기능이 굉장히 다양하고, 

STL 을 어떻게 효과적으로 사용하는지, 또 각각의 특징이 어떠한지에 대해서 조금씩 더 배워가는 요즘인 것 같다. 

queue<pair<int,int>> q;

//기존에 사용한 방법.
q.push(make_pair(a,b);

// 구조체를 사용한 방법.
q.push({a,b});
// tuple을 사용할 수도 있다고 한다. 
queue<tuple<int,int,int>> q;

// 둘다가능.
q.push(a,b,c);
q.push({a,b,c});

//방법 1
auto c = q.pop();
get<0>(c);
get<1>(c);
get<2>(c)

//방법2
int a, b, c;
tie(a, b, c) = q.front();

// 방법 3 (C++17에서만 가능)
auto [a, b, c] = q.front();

'백준 문제풀이' 카테고리의 다른 글

[백준 / C++] 5430 AC  (0) 2021.08.12
[백준/C++] 2493 탑  (0) 2021.08.06
[백준/C++] 11305 주유소  (0) 2021.04.30
[백준/C++] 10610 30  (0) 2021.04.29
[백준/C++] 2630 색종이 만들기  (0) 2020.08.29