ベクトルを次のように初期化できるのと同じように:
vector<int> var1(2000,1);
マップを初期化することは可能ですか?
map<int, int>var2;
2000 個の変数の場合...初期化する理由は 2 つあります。
- 将来的に要素にアクセスする場合に備えて、たとえば map[100]..map[100]=0 が必要です
- 2 番目の理由は、比較のために map の 2 番目の値、つまり map[0]...map[100] に格納されている値を使用する最小優先度キューを使用していることです。
- ベクトルを使用したくないのは、インデックスが実際に歪んでいて、多くの無駄なスペースが発生するためです...つまり、インデックスは map[0]、map[30]、map[56]、map[100] です。マップ[120]、マップ[190]など
たとえば1000個の変数のマップを初期化できる方法はありますか...他のデータ構造を使用することもできます。
また、マップを初期化する従来の方法、つまり
map<int, int> m = map_list_of (1,2) (3,4) (5,6) (7,8);
私の場合、上記の方法は機能しません...他の方法があります.助けてください
編集: for ループを次のように使用することはできません:
このようにして、キーの分布が歪んでいるため、キーは固定されたままになります。本質的に、このように for ループを適用することは vector の適用と同じであり、これは私が望んでいない