문제
c++ 문제 풀 때 구조체 쓰기 귀찮고 인자를 묶고 싶을 때 보통 pair를 쓰곤 한다.
손이 편하면 머리가 힘들어지는 법, 외워야하는 게 더 늘어나기 마련이다.
그 중 하나가 pair에서 make_pair를 쓰는 것인데, 일단 make_pair 자체가 9자나 되고 한 소스 안에 pair를 이용한 코드들이 많이 들어있다면 손이 힘들어질 수있다.( 사실 억지긴 하다.)
그래서 make_pair을 안쓰고 pair에 값을 담아줄 수있는 코드를 찾아보게 되었다.
해결
우리는 c++ 11 이상부터 pair에 초기화 리스트를 사용할 수있다고 한다.
중요한 점은 c++ 11 버전이상부터 라는 점이다. ( 이걸 못보고 나중에 글쓴이를 욕하지 마라. )
사용 법은 매우 간단하다.
make_pair() 대신 {} 로 바꿔주면 된다.
#include <iostream>
using namespace std;
int main(){
pair<int , int > pp;
int a, b; cin >> a >> b;
//pp = make_pair(a, b);
pp = {a, b};
cout << pp.first << ' ' << pp.second << '\n';
}
중첩 pair를 쓰게 된다면 아래와 같이 해주면 된다.
#include <iostream>
using namespace std;
int main(){
pair<int , pair<int, int > > pp;
int a, b, c; cin >> a >> b >> c;
//pp = make_pair(a, make_pair(b, c));
pp = {a, {b, c}};
cout << pp.first << ' ' << pp.second.first << ' ' << pp.second.second << '\n';
}
'C++ 코딩 정리 > 코딩 팁' 카테고리의 다른 글
c++ ios::sync_with_stdio(false), cin.tie(NULL)은 무엇인가. (0) | 2020.03.20 |
---|---|
신기) 변수 초기화 후 초기화 한 변수로 for문 돌릴 시 기존 값 유지 (0) | 2020.03.20 |
댓글