c++ 배열 예제

2차원 배열a[2][2]를 선언했다고 가정해 보겠습니다. 그런 다음 값을 할당하려면 해당 요소에 값을 할당해야 합니다. 일반적으로 배열에 대한 이터레이터는 배열의 수명 동안 무효화되지 않습니다. 그러나 스왑 중에 는 이터레이터가 동일한 배열 요소를 계속 가리키므로 해당 값이 변경된다는 점에 유의해야 합니다. 1차원 배열과 마찬가지로 2차원 배열에도 값을 할당할 수 있습니다. 배열은 연속 메모리 위치에 저장된 항목의 컬렉션입니다. 세 정수의 배열을 만들려면 쓸 수 있습니다. 코드는 배열의 크기를 명시적으로 전달한 것을 제외하고는 이전 코드와 유사합니다. 위의 코드는 나중에 여러 번이 작업을 수행하기 때문에 배열과 루프를 사용하는 데 익숙해지기위한 것입니다. 표는 int 형식의 5개 요소당 3개의 이중 차원 배열을 나타냅니다.

이에 대한 C ++ 구문은 첫 번째 for 루프로 이동합시다. 첫 번째 반복에서 i의 값은 0이므로 `n[i]`는 `n[0]`입니다. 따라서 cin >> n[i];를 작성하여 사용자는 n[0]의 값을 입력하라는 메시지가 표시됩니다. 두 번째 반복에서 유사하게 `i`의 값은 1이고 `n[i]`는 `n[1]`이 됩니다. 따라서 `cin >> n[i];`는 n[1] 등에서 사용자로부터 값을 입력하는 데 사용됩니다. `i`는 9까지 올라가므로 배열의 인덱스 (0,1,2,…,9). 여기서 각 빈 패널은 배열의 요소를 나타냅니다. 이 경우 int 형식의 값입니다. 이러한 요소는 0에서 4로 번호가 매겨지며 0은 첫 번째 요소이며 4는 마지막 요소입니다. C++에서 첫 번째 배열 요소의 인덱스는 항상 0입니다. 예상대로 n 배열을 사용하기 전에 선언해야 합니다.

C ++의 배열에 대한 일반적인 선언은 배열의 인덱스가 0에서 시작하여 9 (10 요소에 대해)까지 올라가기 때문에 코드가 간단하고 i와 j가 0에서 시작됩니다. 그래서, i와 j는 9가 아닌 10 (i<10 및 j<10)까지 간다 . 따라서 위의 코드에서 n[i]는 n[0], n[1], n[2], …., n[9]가 됩니다. 다차원 배열은 "배열배열"이라고 할 수 있습니다. 예를 들어 이중 차원 배열은 요소로 구성된 2차원 테이블로 상상할 수 있으며 모두 동일한 유형의 요소를 보유합니다. 배열을 매개 변수로 인정하기 위해 함수를 선언 할 때 수행해야 할 유일한 일은 인수에서 배열, 식별자 및 void 괄호 쌍의 기본 형식을 지정하는 것입니다. 예를 들어 다음 함수: 예를 들어 다른 식별자를 가진 5개의 서로 다른 변수를 선언하지 않고도 int 형식의 5값을 저장할 수 있습니다. 대신 배열을 사용하여 동일한 형식의 5가지 다른 값(예: int)을 고유 식별자로 저장할 수 있습니다. 지금까지 배열에 값을 선언하고 할당하는 방법을 보았습니다.

이제 배열에 대한 포인터를 가질 수있는 방법을 볼 수 있습니다. 그러나 시작하기 전에 포인터를 통과했다고 가정합니다. 그렇지 않은 경우 먼저 포인터 항목을 읽고 연습 섹션에서 몇 가지 문제를 연습합니다. 다른 변수와 마찬가지로 배열을 사용하려면 먼저 선언해야 합니다. C++의 배열에 대한 일반적인 선언은 길이가 0인 배열(N == 0)에 대한 특별한 경우가 있습니다. 이 경우 array.begin() == array.end()는 몇 가지 고유한 값입니다. 0 크기의 배열에서 front() 또는 뒤로()를 호출하는 효과는 정의되지 않습니다. 어떤 면에서 배열을 인수로 전달하는 것은 항상 차원을 잃습니다. 그 이유는 역사적 이유로 배열을 직접 복사할 수 없기 때문에 실제로 전달되는 것은 포인터이기 때문입니다. 이것은 초보 프로그래머를 위한 일반적인 오류 소스입니다. 포인터에 대한 명확한 이해가 앞으로의 장에서 설명되지만 많은 도움이됩니다.

배열은 동일한 형식의 N 요소의 튜플로 사용할 수도 있습니다. 한 수업에 50명의 학생의 마크를 저장하고 평균 점수를 계산해야 한다고 가정합니다. 50개의 개별 변수를 선언하면 작업이 수행되지만 프로그래머는 그렇게 하지 않습니다. 그리고 여기에 행동에 배열이 온다. 다차원 배열은 두 개의 인덱스(즉, 두 차원)로 제한되지 않습니다.

Shares

Posted on 2nd August 2019 in Uncategorised

Share the Story

About the Author

Back to Top
Shares