このSOの答えは、キーのベクトルを持つSTLマップ、ベクトルをキーとして使用できることを示しています。したがって、ベクターをキーとして使用する場合。キーは一意である必要があるため、実際にはどのように機能map
しますか?同じ要素を持つ別のベクターを挿入すると、要素ごとに重複した要素がないかチェックされますか、ベクターの名前が何かを指定していますか?配列の名前と同様に、ベースアドレスを表します。したがって、この場合はベースアドレスをキーとして使用できるため、配列をキーとして使用できますが、ベクトルの場合はキーは何ですか。内部ではどのように機能しますか。
ベクトルの名前を出力するとエラーになるので
vector<int> v;
cout<<v; //error
has operators == and <
それはどのように役立ちますか?私の質問は、重複する要素をマップして要素
std::vector
キーとして使用することを強制する人は誰もいませんstd::map
。使用した分だけお支払いいただきます。それは可能であり、おそらくいくつかのユースケースがありますが、選択したデータ構造を変更することができます。STLコンテナーは、最大限に用途が広く、ユーザーがコンテナーを使用したい方法で使用できるように設計されています。
std::map
キーと値の両方をそれ自体にコピーします。std::unordered_map
キーのハッシュを保存できます。