[c++] mapの要素(pair?)の[a,b]表記

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
fly3555
記事: 6
登録日時: 7年前

[c++] mapの要素(pair?)の[a,b]表記

#1

投稿記事 by fly3555 » 6年前

https://qiita.com/_EnumHack/items/f462042ec99a31881a81
では

コード:

auto const& [k, v] = *begin(dic);

コード:

for (auto const& [k, v] : dic)
    printf("(%d,%d)\n", k, v); 
}
のように、mapの要素を[k, v]などと表記していますが、私の環境ではエラーが出ます。
この書き方は便宜上のものなのでしょうか?

環境はWindows 10, MinGW6.3.0, #include <bits/stdc++.h>です

Bull
記事: 149
登録日時: 11年前

Re: [c++] mapの要素(pair?)の[a,b]表記

#2

投稿記事 by Bull » 6年前

そのページに書かれているように C++17 で追加された、 構造化束縛ですね。
g++ 6.3.0 ではどうかわかりませんが、g++ 7.3.0 ではコンパイルできました。
ただし、-std=c++17 のオプションが必要になります。

fly3555
記事: 6
登録日時: 7年前

Re: [c++] mapの要素(pair?)の[a,b]表記

#3

投稿記事 by fly3555 » 6年前

ご返信有難うございます。
これが構造化束縛というのですね。全然理解していませんでした‥‥

返信

“C言語何でも質問掲示板” へ戻る