vector <int> V[]
およびvector< vector<int> > V
両方とも2D配列です。
しかし彼らの違いとは何であり、これを別の場所で使用する場所はどこですか?簡単な説明をお願いします。
vector<int> V[]
はベクトルの配列です。
vector< vector<int> > V
はベクトルのベクトルです。
引用 cplusplus.com 、
ベクトルは、サイズを変更できる配列を表すシーケンスコンテナーです。
配列と同様に、ベクトルは要素に連続した格納場所を使用します。つまり、要素への通常のポインターのオフセットを使用して要素にアクセスでき、配列のように効率的です。ただし、配列とは異なり、そのサイズは動的に変化する可能性があり、ストレージはコンテナーによって自動的に処理されます。
TL; DR:
固定数のstd::vector
要素を操作する場合は、vector <int> V[]
を使用できます。
std::vector
の動的配列を使用する場合は、vector< vector<int> > V
を使用できます。
1つの違いは、どちらも同じ方法で初期化できるが、たとえば.
vector<int> V1[] {{1,2,3}, {4,5,6}};
vector<vector<int>> V2 {{1,2,3}, {4,5,6}};
とアクセス
cout << V1[0].back() << endl;
cout << V2[0].back() << endl;
v1は成長できません。 V1.Push_back(...)はベクターオブジェクトではないため、作成できません。その単なる配列。 2つ目は動的です。好きなように育てることができます。
ベクトルV []は単なる固定配列です。したがって、上限までしか追加/変更できません。それ自体はベクターではないため、サイズ制限が固定されています。ただし、vector <vector> Vは動的ベクトルであり、そのサイズは動的に増加できます。