여러개의 변수를 한번에 생성합니다.
배열은 메모리에서 여러개의 연속된 공간에서 할당됩니다.
배열에는 인덱스로 접근합니다.
10칸의 연속된 배열을 만들어 봅니다.
#include<iostream>
using namespace std;
int main() {
int i[10];
return 0;
}
#include<iostream>
using namespace std;
int main() {
int i[10];
cout << i[5] << endl;
return 0;
}
Q : 위와 같이 코딩하면 배열에 어떤 값이 들어가 있나요?
#include<iostream>
using namespace std;
int main() {
int i[10] = {};
cout << i[5] << endl;
return 0;
}
이러한 문제를 해결하기 위해 전부 0으로 할당할 수 있습니다.
(int i[10] = {0,0,0,0,0,0,0,0,0,0};
처럼 개별적으로 지정할 수도 있습니다.)
배열을 출력합니다.
이 예제 코드에서는 보기쉽게 " | "
를 사용했습니다.
#include<iostream>
using namespace std;
int main() {
int i[10] = {};
for (int index = 0; index < 10; index++) {
cout << " | ";
cout << i[index] ;
cout << " | ";
}
cout << endl;
return 0;
}
10*10 배열을 만들어 봅니다.
#include<iostream>
using namespace std;
int main() {
int i[10][10];
return 0;
}
2차원 배열에서도 마찬가지로 int i2[10][10] = { {1,1,1},{2,2,2} };
으로 특정 값을 특정 위치에 넣을 수 있습니다.
벡터와 비슷한 조건으로(이 내용은 후반부에 위치할 예정입니다), 메모리의 스택에 연속적으로 요소들을 배치할 수 있습니다.
요소들이 메모리안 특정 지역에 모여있도록 배치하므로, CPU에서 해당 요소들을 좀 더 빠르게 처리할 수 있습니다.
또한 생성자, 소멸자, 복사 생성자, 대입 연산자를 지원하므로, 좀 더 C++다운 배열이라고 할 수 있습니다.
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 10> arr = {1, 2, 3, 4, 5};
auto it = arr.begin();
while (it != arr.end()) {
cout << *it << endl;
it++;
}
return 0;
}
- auto : 자동으로 타입을 지정합니다.
-
과제-1 : 위에서 실습한 2차원 배열을 출력하기 (힌트 :
array[i][j]
) -
과제-2(1) : 2차원 배열로 지뢰찾기 보드만들기
예시 :
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]
- 과제-2(2) : 2차원 배열로 지뢰찾기의 확률 40%의 지뢰 세팅하기
(rand()
를 이용하시기 바랍니다.)
예시 :
[■][ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][■][ ][ ][■][ ][■][ ]
[ ][■][ ][ ][■][ ][ ][ ][ ][ ]
[ ][ ][■][ ][ ][■][ ][ ][ ][ ]
[■][ ][ ][ ][■][ ][ ][■][ ][ ]
[ ][■][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][■][ ][ ][■][ ][■][ ]
[ ][ ][ ][ ][■][ ][ ][ ][ ][ ]
[■][ ][■][ ][ ][ ][■][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]