구조체나 배열 등이 가지는 멤버들을 풀어서 바인딩(변수에 할당)할 수 있게 해주는 편의 문법

멤버들이 가지고 있던 데이터형을 그대로 따라서 가져온다

using tup = tuple<ll, int, int>;

priority_queue<tup, vector<tup>, greater<>> pq;
...
auto [dist, k, now] = pq.top(); // dist ll, k랑 now는 int

 

map 쓸때도 유용

std::map<int, int> m; 
m[1] = 2; 
m[2] = 4; 
m[3] = 6; 

// Before C++17 
for (const auto& kv : m) { 
	cout << "m[" << kv.first << "] = " << kv.second << endl; 
} 

// After C++17 
for (const auto& [key, value] : m) { 
	cout << "m[" << key << "] = " << value << endl; 
}

// 참고 : https://neurowhai.tistory.com/245

 

 

참고

http://egloos.zum.com/sweeper/v/3203903

[C++17] Structured Bindings.mhtml
0.47MB

 

https://neurowhai.tistory.com/245

[C++] Structured binding 설명.mhtml
1.96MB

'<언어> > [C++]' 카테고리의 다른 글

[C++] Template (Typename, Class)  (0) 2022.01.24
[C++] enum vs enum class  (0) 2022.01.20
[Modern C++][C++11] push_back vs emplace_back  (0) 2021.07.16
[Modern C++][C++11] nullptr  (0) 2021.05.11
[C++] Class 공부 & instantiation (+ Struct)  (0) 2021.03.24

+ Recent posts