vector は構造化束縛できない
間違い
c++ で競技プログラミング中に、ベクトルの構造化束縛を使いたくなりました。
しかし、vector の構造化束縛はエラーになります。
調べてみたら当たり前のことでした。
構造化束縛とは
構造化束縛の定義は以下の通りです。
「構造化束縛 (structured bindings)」は、組やタプル、配列や構造体を分解して各要素を取り出す機能である。
https://cpprefjp.github.io/lang/cpp17/structured_bindings.html
私は普段は python を使っているので、アンパック代入のようなものと理解しました。
何を間違えていたのか?
定義にあるように、構造化束縛の対象は、配列やタプル等の、要素数が確定している構造です。
vector は動的配列であり、要素数が決定していないため、構造化束縛はできないということです。
2021 02 07