آرایههای دو بعدی کاربردهای بسیاری از جمله جداول و ماتریسها دارند. اهمیت تعریف آرایههای پویای دو بعدی کمتر از آرایههای یک بعدی نیست. آرایههای پویای دو بعدی یک ویژگی جالب در مقایسه با آرایهی ایستا دارند. شما با تعریف پویای آرایههای دو بعدی میتوانید جداول غیرمستطیلی تشکیل دهید. در واقع وقتی آرایههای دو بعدی را به صورت پویا ایجاد میکنید، این اختیار را دارید که تعداد ستونهای هر ردیف را متفاوت انتخاب کنید.
به قطعه کد زیر توجه کنید:
1 | int **table;
|
2 | cin >> n;
|
3 | table = new int*[n];
|
4 | int i, j;
|
5 | for (i = 1 ; i <= n ; i++){
|
6 | table[i - 1] = new int[i];
|
7 | for (j = 1 ; j <= i ; j++)
|
8 | table[i - 1][j - 1] = i * j;
|
9 | }
|
10 | .
|
11 | .
|
12 | .
|
13 | for (i = 0 ; i < n ; i ++)
|
14 | delete[] table[i];
|
15 | delete[] table;
|
16 | |
این کد عدد n را از کاربر گرفته و نیمهی پایینی جدول ضرب n در n را در یک آرایهی پویا ذخیره میکند. جدول ضرب اعداد متقارن است و نیازی به ذحیره کردن اعداد همهی خانههای جدول نیست. در نتیجه با آرایهی پویای دو بعدی حافظهی مصرفی تقریبا نصف میشود.
ادامه ...