https://en.cppreference.com/w/cpp/language/structured_binding
Structured binding은 C++17부터 추가된 문법이다.
구조체에 있는 멤버 변수들을 모두 가져올 때, 매우 편리하게 사용할 수 있다.
사용법은 auto [변수명, 변수명,...] = 구조체; 로 사용할 수 있다.
가장 간단한 예로 들자면 아래와 같이 pair을 바로 변수 a,b에 넣을 수 있다.
#include <iostream>
using namespace std;
int main() {
pair<int, int> p = {1, 2};
auto [a, b] = p;
cout << a << b << endl; //12
}
아래와 같이 map에서 for문과 함께 사용한다면 매우 편하게 map을 순회할 수 있다.
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, int> m;
m[1] = 3;
m[2] = 6;
m[3] = 9;
for (const auto &[key, value] : m) {
cout << "(" << key << ", " << value << ")" << endl;
}
//(1, 3)
//(2, 6)
//(3, 9)
}
'C++' 카테고리의 다른 글
[C/C++] Sequencing (Sequence Point) (0) | 2022.05.01 |
---|---|
[C/C++] printf에 float만을 위한 변환 명세가 없는 이유 (0) | 2022.04.28 |
[C++] lower_bound vs upper_bound (0) | 2021.10.15 |
[C++] string split구현 (0) | 2021.09.11 |
[C++] vector 특정 원소 지우기 (0) | 2021.07.20 |