배열 2

킴스코딩클럽·2022년 9월 22일
1

CS기초 시리즈

목록 보기
14/71
struct Point2D
	{
		float x;
		float y;

	};

	// Point2D pt1[3]{};구조체도 배열로 만들 수 있음
	// (1,1),(2,2),(3,3)으로 초기화하려고하면?
	Point2D pt1[3]
	{
		{1,1},
		{2,2},
		{3,3}
	};
	for (int i = 0; i < 3; i++)
	{
		std::cout << pt1[i].x << "," << pt1[i].y << std::endl;
	}

엑셀처럼 만드려면? 엑셀은 행과 열이 있다

int main()
{
	int myArray[]{
		0,0,1,0,0,
		0,1,1,1,0,
		1,1,1,1,1
	};
	for (int i = 0; i < 15; i++)
	{
		std::cout << myArray[i];

		//5열 출력 후에 줄바꿈
		if (i % 5 == 4) 
			//울타리 말뚝 오류 i % 5==0으로 찍으면 이상하게 찍힌다  
			// 01234 찍고 56789 찍고 1011121314찍으면 4로 나눠짐
			// or (i+1) % 5 == 0  인덱스는 0부터 시작하기 때문
		{
			std::cout << std::endl;
		}
	}
}
cpp
	int myArray[]{
		0,0,1,0,0,
		0,1,1,1,0,
		1,1,1,1,1
	};
// row.colunm
// 3행 3열 >> 인덱스 12
// 공식을 만들 수 있음
// 2행 4열 >> 인덱스 8 
int index{(-1) * 5 +(-1)};
//행 = (가로길이-1) * 5 + (열-1)
//그림을 가져올 때 열과 행의 개념으로 가져오려고 할 수 있다

하지만 이렇게 어렵게 말고 쉽게 하는 방법 : 다차원 배열

1차원 x 2차원 xy 3차원 xyz

int x[3]; << 차원이 하나인 배열
int x[3][4] .....; << 다차원인 배열이다

int myArray[3][5]
{	
    {0,0,1,0,0},
	{0,1,1,1,0},
	{1,1,1,1,1}
};   

3개 안에 5개 배열이 있다는 개념으로 [3][5] 순서
행렬도 따지면 [3]은 행(row-가로) [5]는 열(column-세로/기둥)

배열의 초기화

int myArray[4][3]{
		{1,2,3},{4,5,6},{7,8,9},{10,11,12}
	};
	// 2차원 배열 초기화 
    // 중괄호 주의

for (int i = 0; i <4 ; i++) //행 반복
	{
		for (int j = 0; j < 3; j++) //열 반복
		{
			std::cout << myArray[i][j];
		}
		std::cout << std::endl; // 줄바꿈
	}

다차원 배열
int x[ ][ ][ ]; 배열의 배열 개념으로 이해
메모리에 어떻게 저장되는가?
1차원 개념으로 저장됨 일렬로 쭉 저장되는 개념
인덱스 변환 형태로 자주 사용되고 2차원 배열 정도까지만 씀
이 이상 쓰기는 사람이 어려움


profile
공부 기록용

0개의 댓글