C 언어
이 자습서에서는 C++의 다차원 배열에 대해 배웁니다. 보다 구체적으로 어떻게 선언하고 액세스하고 프로그램에서 효율적으로 사용하는지 설명합니다.
C++에서는 다차원 배열로 알려진 배열의 배열을 만들 수 있습니다. 예:
int x[3][4];
여기서 x 는 2차원 배열입니다. 최대 12개의 요소를 담을 수 있습니다.
이 배열은 아래와 같이 3개의 행이 있고 각 행에는 4개의 열이 있는 테이블로 생각할 수 있습니다.
<그림>3차원 배열도 비슷한 방식으로 작동합니다. 예:
float x[2][4][3];
이 배열 x 최대 24개의 요소를 담을 수 있습니다.
단순히 차원을 곱하여 배열의 총 요소 수를 확인할 수 있습니다.
2 x 4 x 3 = 24
<시간> 일반 배열과 마찬가지로 다차원 배열을 여러 가지 방법으로 초기화할 수 있습니다.
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};
이것은 3차원 배열을 초기화하는 좋은 방법이 아닙니다. 이 배열을 초기화하는 더 좋은 방법은 다음과 같습니다.
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} }
};
이 3차원 배열의 크기를 확인하세요.
첫 번째 차원의 값은 2
입니다. . 따라서 첫 번째 차원을 구성하는 두 가지 요소는 다음과 같습니다.
Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} } Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
두 번째 차원의 값은 3
입니다. . 첫 번째 차원의 각 요소에는 각각 세 개의 요소가 있습니다.
{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1. {13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.
마지막으로 4개의 int
이 있습니다. 두 번째 차원의 각 요소 내부의 숫자:
{3, 4, 2, 3} {0, -3, 9, 11} ... .. ... ... .. ...<시간>
// C++ Program to display all elements
// of an initialised two dimensional array
#include <iostream>
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;
}
출력
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차원 int
을 초기화했습니다. test라는 이름의 배열 3개의 "행"과 2개의 "열"이 있습니다.
여기서는 중첩된 for
를 사용했습니다. 루프를 사용하여 배열 요소를 표시합니다.
i == 0
의 외부 루프 i == 2
로 배열의 행에 액세스j == 0
의 내부 루프 j == 1
로 배열의 열에 액세스마지막으로 각 반복에서 배열 요소를 인쇄합니다.
<시간>
#include <iostream>
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 < 3; ++j) {
cin >> 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;
}
출력
Enter 6 numbers: 1 2 3 4 5 6 The numbers are: numbers[0][0]: 1 numbers[0][1]: 2 numbers[0][2]: 3 numbers[1][0]: 4 numbers[1][1]: 5 numbers[1][2]: 6
여기서는 중첩된 for
을 사용했습니다. 루프를 사용하여 2차원 배열의 입력을 받습니다. 모든 입력이 완료되면 다른 중첩된 for
를 사용했습니다. 루프를 사용하여 배열 구성원을 인쇄합니다.
// C++ Program to Store value entered by user in
// three dimensional array and display it.
#include <iostream>
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;
}
출력
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
3차원 배열의 요소를 인쇄하는 기본 개념은 2차원 배열과 유사합니다.
그러나 3차원을 조작하기 때문에 2개 대신 총 3개의 루프가 있는 중첩 for 루프를 사용합니다.
i == 0
의 외부 루프 i == 1
으로 배열의 첫 번째 차원에 액세스j == 0
의 중간 루프 j == 2
로 배열의 두 번째 차원에 액세스k == 0
의 가장 안쪽 루프 k == 1
로 배열의 세 번째 차원에 액세스보시다시피 배열의 복잡성은 차원이 증가함에 따라 기하급수적으로 증가합니다.
C 언어
동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조를 배열합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장
배열은 동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 배열을 인접한 메모리 위치에 저장된 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장 낮은