参照のベクトルを作成できないのはなぜですか? 質問する

参照のベクトルを作成できないのはなぜですか? 質問する

私がこれをすると:

std::vector<int> hello;

すべてうまく動作します。ただし、代わりに参照のベクトルにすると、次のようになります。

std::vector<int &> hello;

次のようなひどいエラーが発生します

エラー C2528: 'ポインタ': 参照へのポインタが不正です

ポインターをいじらなくても済むように、構造体への参照をベクターにまとめたいのですが、なぜベクターはこれについて大騒ぎしているのでしょうか? 代わりにポインターのベクターを使用するしか選択肢はないのでしょうか?

ベストアンサー1

ベクターのようなコンテナのコンポーネント型は割り当て可能参照は割り当て可能ではありません (宣言時に一度だけ初期化でき、後で他のものを参照することはできません)。その他の割り当て不可能な型もコンテナのコンポーネントとして使用できません。たとえば、vector<const int>は許可されません。

おすすめ記事