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