Skip to content

toona note

vector は構造化束縛できない

間違い

c++ で競技プログラミング中に、ベクトルの構造化束縛を使いたくなりました。
しかし、vector の構造化束縛はエラーになります。
調べてみたら当たり前のことでした。

構造化束縛とは

構造化束縛の定義は以下の通りです。

「構造化束縛 (structured bindings)」は、組やタプル、配列や構造体を分解して各要素を取り出す機能である。

https://cpprefjp.github.io/lang/cpp17/structured_bindings.html

私は普段は python を使っているので、アンパック代入のようなものと理解しました。

何を間違えていたのか?

定義にあるように、構造化束縛の対象は、配列やタプル等の、要素数が確定している構造です。
vector は動的配列であり、要素数が決定していないため、構造化束縛はできないということです。