3

私は C++ を学習しようとしており、次の構造のような単純なハッシュ テーブルのコードを記述しようとしています。

array[0][0] array[0][1] array[0][2]
key 1        value 1      value 2

array[1][0] array[1][1] 
key 2        value 3     

array[2][0] array[2][1] array[2][2]
key 3        value 4      value 5

動的配列の配列を意味します。今、私はそのような配列を定義する方法を理解できませんか?

これに関する任意の助けに感謝します。

4

4 に答える 4

7

動的配列の動的配列を本当に作成する必要がある場合はnew、両方の配列のキーワードを使用して作成する必要があります。例えば:

// an array of int pointers... each points to the start of an array
int** arrays = new int*[10]; 
arrays[0] = new int[99]; // populate the first element of the array of arrays
arrays[1] = new int[47]; // arrays don't have to be the same size.

もちろん、これをしないことを強くお勧めします。delete[]次に、各メンバーに対して、arraysおよびそれ自体に対して使用することを覚えておく必要がありarraysます。

実際には、これには組み込みstd::vector型を使用する必要があります。それがそこにある理由です(私は他の回答に投票しました!)。

注意点として、これも連続メモリではありません。また、メンバー配列を同じサイズにしたい場合は、forループでメモリを割り当てることができます。

于 2012-11-02T09:36:26.093 に答える