Ц ++ вишедимензионални низови (2. и 3д низови)

У овом упутству ћемо научити о вишедимензионалним низовима у Ц ++. Прецизније, како их пријавити, приступити им и ефикасно их користити у нашем програму.

У језику Ц ++ можемо створити низ низа, познат као вишедимензионални низ. На пример:

 int x(3)(4);

Овде је к дводимензионални низ. Може да прими највише 12 елемената.

О овом низу можемо размишљати као о табели са 3 реда, а сваки ред има 4 колоне као што је приказано доле.

Елементи у дводимензионалном низу у програмирању на Ц ++

Тродимензионални низови такође раде на сличан начин. На пример:

 float x(2)(4)(3);

Овај низ к може да садржи највише 24 елемента.

Укупан број елемената у низу можемо сазнати множењем његових димензија:

 2 x 4 x 3 = 24

Иницијализација вишедимензионалног низа

Попут нормалног низа, ми можемо иницијализовати вишедимензионални низ на више начина.

1. Иницијализација дводимензионалног низа

 int test(2)(3) = (2, 4, 5, 9, 0, 19);

Горња метода није пожељна. У наставку је дат бољи начин за иницијализацију овог низа истим елементима низа:

 int test(2)(3) = ( (2, 4, 5), (9, 0, 19));

Овај низ има 2 реда и 3 колоне, због чега имамо два реда елемената са по 3 елемента.

Иницијализација дводимензионалног низа у језику Ц ++

2. Иницијализација тродимензионалног низа

 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), (5, 1, 4, 9) ) );

Обратите пажњу на димензије овог тродимензионалног низа.

Прва димензија има вредност 2. Дакле, два елемента која чине прву димензију су:

 Елемент 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Елемент 2 = ((13, 4, 56, 3), ( 5, 9, 3, 5), (5, 1, 4, 9)) 

Друга димензија има вредност 3. Приметите да сваки од елемената прве димензије има по три елемента:

 (3, 4, 2, 3), (0, -3, 9, 11) и (23, 12, 23, 2) за елемент 1. (13, 4, 56, 3), (5, 9, 3 , 5) и (5, 1, 4, 9) за елемент 2.

Коначно, intунутар сваког елемента друге димензије налазе се четири броја:

 (3, 4, 2, 3) (0, -3, 9, 11)…… 

Пример 1: Дводимензионални низ

 // C++ Program to display all elements // of an initialised two dimensional array #include using namespace std; int main() ( int test(3)(2) = ((2, -5), (4, 0), (9, 1)); // use of nested for loop // access rows of the array for (int i = 0; i < 3; ++i) ( // access columns of the array for (int j = 0; j < 2; ++j) ( cout << "test(" << i << ")(" << j << ") = " << test(i)(j) << endl; ) ) return 0; )

Оутпут

 тест (0) (0) = 2 тест (0) (1) = -5 тест (1) (0) = 4 тест (1) (1) = 0 тест (2) (0) = 9 тест (2) (1) = 1

У горњем примеру, иницијализовали смо дводимензионални intниз назван тест који има 3 „реда“ и 2 „колоне“.

Овде смо користили угнежђену forпетљу за приказ елемената низа.

  • спољна петља од i == 0за i == 2приступ редовима низа
  • унутрашња петља од j == 0за j == 1приступ колонама низа

На крају, исписујемо елементе низа у свакој итерацији.

Пример 2: Унос за дводимензионални низ

 #include using namespace std; int main() ( int numbers(2)(3); cout << "Enter 6 numbers: " << endl; // Storing user input in the array for (int i = 0; i < 2; ++i) ( for (int j = 0; j > numbers(i)(j); ) ) cout << "The numbers are: " << endl; // Printing array elements for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( cout << "numbers(" << i << ")(" << j << "): " << numbers(i)(j) << endl; ) ) return 0; )

Оутпут

 Унесите 6 бројева: 1 2 3 4 5 6 Бројеви су: бројеви (0) (0): 1 бројеви (0) (1): 2 броја (0) (2): 3 броја (1) (0): 4 бројеви (1) (1): 5 бројеви (1) (2): 6

Овде смо користили угнежђену forпетљу да бисмо узели улаз 2д низа. Након што се сав унос узме, користили смо другу угнежђену forпетљу за испис чланова низа.

Пример 3: Тродимензионални низ

 // C++ Program to Store value entered by user in // three dimensional array and display it. #include using namespace std; int main() ( // This array can store upto 12 elements (2x3x2) int test(2)(3)(2) = ( ( (1, 2), (3, 4), (5, 6) ), ( (7, 8), (9, 10), (11, 12) ) ); // 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; )

Оутпут

 тест (0) (0) (0) = 1 тест (0) (0) (1) = 2 тест (0) (1) (0) = 3 тест (0) (1) (1) = 4 тест ( 0) (2) (0) = 5 тест (0) (2) (1) = 6 тест (1) (0) (0) = 7 тест (1) (0) (1) = 8 тест (1) (1) (0) = 9 тест (1) (1) (1) = 10 тест (1) (2) (0) = 11 тест (1) (2) (1) = 12

Основни концепт штампања елемената 3д низа сличан је концепту 2д низа.

Међутим, пошто манипулишемо са 3 димензије, користимо угнежђену петљу фор са укупно 3 петље уместо са само 2:

  • спољна петља од i == 0до i == 1приступа првој димензији низа
  • средња петља од j == 0до j == 2приступа другој димензији низа
  • најунутарња петља од k == 0до k == 1приступа трећој димензији низа

Као што видимо, сложеност низа експоненцијално расте са повећањем димензија.

Занимљиви Чланци...