vault backup: 2022-07-06 20:53:32
Affected files: 02. PARA/03. Resources(資源)/C++17/Structured binding declaration.md
This commit is contained in:
@@ -34,4 +34,24 @@ auto& [num1, num2, num3] = my_vec;
|
||||
```cpp
|
||||
float rect[4]{ 5.0f, 6.0f, 120.0f, 200.0f };
|
||||
auto& [x, y, w, h] = rect;
|
||||
```
|
||||
```
|
||||
|
||||
但是不能用來展開 `std::vector`。
|
||||
|
||||
## 展開 pair
|
||||
```cpp
|
||||
std::pair<std::string, int32_t> name_phone{ "John", 912345678 };
|
||||
auto& [name, phone_number] = name_phone;
|
||||
```
|
||||
|
||||
用在 for-loop 裡也比較好懂,假設我們有一個 vector 用來存剛剛的姓名跟電話:
|
||||
```cpp
|
||||
std::vector<std::pair<std::string, uint32_t>> phoneBook = {
|
||||
{ "John", 912345678 },
|
||||
{ "Andy", 912345679 },
|
||||
};
|
||||
|
||||
for (const auto& [name, phone] : phoneBook) {
|
||||
std::cout << "Name: " << name << ", phone: " << phone << std::endl;
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user