آرایه چندبعدی ++C — راهنمای جامع

۲۲۷ بازدید
آخرین به‌روزرسانی: ۵ مهر ۱۴۰۲
زمان مطالعه: ۴ دقیقه

در این مقاله با مفهوم آرایه چندبعدی ++C و به طور خاص با روش اعلان آرایه‌های چندبعدی، دسترسی به آن‌ها و استفاده مؤثر از این آرایه‌ها در برنامه‌های مختلف آشنا خواهیم شد. برای مطالعه بخش قبلی این سری مقالات آموزش زبان ++C روی لینک زیر کلیک کنید:

در زبان برنامه‌نویسی ++C می‌توان یک آرایه از آرایه‌ها ایجاد کرد که به نام آرایه چندبعدی شناخته می‌شود. به مثال زیر توجه کنید:

int x[3][4];

در این آرایه، x یک آرایه دوبعدی است. این آرایه می‌تواند 12 عنصر در خود جای دهد. این آرایه را می‌توان به عنوان جدولی با 3 ردیف در نظر گرفت که هر ردیف 4 ستون مانند تصویر زیر دارد.

آرایه چندبعدی ++C

آرایه سه‌بعدی نیز به روشی مشابه کار می‌کند. به مثال زیر توجه کنید:

float x[2][4][3];

این آرایه x می‌توانند حداکثر 24 عنصر را نگهداری کند. این مثال را می‌توان بدین صورت نگریست که هر کدام از 2 عنصر می‌توانند حداکثر 4 عنصر را نگهداری کنند که 8 عنصر ایجاد می‌کند و هر کدام از این هشت عنصر می‌تواند 3 عنصر را نگهداری کند. از این رو مجموع تعداد عناصری که این آرایه می‌تواند نگهداری کند 24 عدد است.

مقداردهی آرایه چندبعدی

یک ارائه چندبعدی را می‌توان به چند روش مقداردهی کرد.

مقداردهی دو آرایه چندبعدی

int test[2][3] = {2, 4, -5, 9, 0, 9};

بهترین روش برای مقداردهی این آرایه مانند روش فوق است.

int test[2][3] = { {2, 4, 5}, {9, 0 0}};

مقداردهی سه آرایه چندبعدی

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23,

2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

روش بهتر برای مقداردهی این آرایه با همان عنصر فوق است.

int test[2][3][4] = {

{ {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },

{ {13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9} }

};

مثال ۱: آرایه دوبعدی

برنامه ++C برای نمایش همه عناصر یک آرایه دوبعدی مقداردهی شده:

#include <iostream>
using namespace std;
int main()
{
    int test[3][2] =
    {
        {2, -5},
        {4, 0},
        {9, 1}
    };
    // Accessing two dimensional array using
    // nested for loops
    for(int i = 0; i < 3; ++i)
    {
        for(int j = 0; j < 2; ++j)
        {
            cout<< "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }
    return 0;
}

خروجی

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

مثال 2: آرایه دوبعدی

برنامه ++C برای ذخیره‌سازی دمای دو محل مختلف در طی یک هفته و نمایش آن

#include <iostream>
using namespace std;
const int CITY = 2;
const int WEEK = 7;
int main()
{
    int temperature[CITY][WEEK];
    cout << "Enter all temperature for a week of first city and then second city. \n";
    // Inserting the values into the temperature array
    for (int i = 0; i < CITY; ++i)
    {
        for(int j = 0; j < WEEK; ++j)
        {
            cout << "City " << i + 1 << ", Day " << j + 1 << " : ";
            cin >> temperature[i][j];
        }
    }
    cout << "\n\nDisplaying Values:\n";
    // Accessing the values from the temperature array
    for (int i = 0; i < CITY; ++i)
    {
        for(int j = 0; j < WEEK; ++j)
        {
            cout << "City " << i + 1 << ", Day " << j + 1 << " = " << temperature[i][j] << endl;
        }
    }
    return 0;
}

خروجی

Enter all temperature for a week of first city and then second city.
City 1, Day 1: 32
City 1, Day 2: 33
City 1, Day 3: 32
City 1, Day 4: 34
City 1, Day 5: 35
City 1, Day 6: 36
City 1, Day 7: 38
City 2, Day 1: 23
City 2, Day 2: 24
City 2, Day 3: 26
City 2, Day 4: 22
City 2, Day 5: 29
City 2, Day 6: 27
City 2, Day 7: 23
Displaying Values:

City 1, Day 1 = 32
City 1, Day 2 = 33
City 1, Day 3 = 32
City 1, Day 4 = 34
City 1, Day 5 = 35
City 1, Day 6 = 36
City 1, Day 7 = 38
City 2, Day 1 = 23
City 2, Day 2 = 24
City 2, Day 3 = 26
City 2, Day 4 = 22
City 2, Day 5 = 29
City 2, Day 6 = 27
City 2, Day 7 = 23

مثال 3: آرایه سه‌بعدی

برنامه ++C برای ذخیره‌سازی مقدار وارد شده از سوی کاربر در آرایه سه‌بعدی و نمایش آن:

#include <iostream>
using namespace std;
int main()
{
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2];
    cout << "Enter 12 values: \n";
    
    // Inserting the values into the test array
    // using 3 nested for loops.
    for(int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 3; ++j)
        {
            for(int k = 0; k < 2; ++k )
            {
                cin >> test[i][j][k];
            }
        }
    }
    cout<<"\nDisplaying Value stored:"<<endl;
    // Displaying the values with proper index.
    for(int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 3; ++j)
        {
            for(int k = 0; k < 2; ++k)
            {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }
    return 0;
}

خروجی

Enter 12 values:
1
2
3
4
5
6
7
8
9
10
11
12

Displaying Value stored:
test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

در زمان افزایش ابعاد، پیچیدگی نیز به صورت وحشتناکی افزایش می‌یابد، اما مفهوم آن کاملاً مشابه است.

برای مطالعه قسمت بعدی این مجموعه مطلب آموزشی می‌توانید روی لینک زیر کلیک کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۴ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
programiz

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *