루리코딩 세상

배열 (Array) 자료구조 정리 본문

이론/자료구조

배열 (Array) 자료구조 정리

루리딩 2025. 5. 29. 18:14

배열은 번호와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어, 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치가딘다. 대부분의 프로그래밍 언어에서 사용할 수 있는 가장 기초적인 자료 구조로, 기본적인 용도 외에 다른 복잡한 구조들을 표현하기 위해서 행렬, 벡터 등을 컴퓨터에서 표현하는 용도 등으로도 사용된다. 배열의 첫번째 요소의 메모리 주소를 첫 번째 주소 또는 기본 주소라고한다.


동적 배열(Dybamic array)는 프로그래밍에서 크기가 고정되지 않은 배열을 의미한다.

C++에서는 vector라는 타입이 동작 배열을 지원한다.

 

동적 배열은 동적 할당 배열과는 다르다. 동적 할당 배열은 배열이 할당될 때 크기가 고정되는 배열이지만 동적 배열은 이러한 고정 크기 배열을 백엔드로 사용할 수 있다.

 

C++에서 vector는 동적으로 크기를 조절할 수 있는 컨테이너이다.

#include <vector>
std::vector<int> v;

위 처럼 선언만 하면 v는 비어있는 상태로 push_back()이나 resize()를 통해 명시적으로 크기를 늘려주어야 한다.

요약

선언만 함 (vector<int> v;) ❌ 아니요 비어 있음
push_back() 호출 ✅ 네 끝에 요소 추가
resize(n) 호출 ✅ 네 강제로 크기 설정
v[i] 직접 접근 ❌ 아니요 크기보다 큰 인덱스는 에러

 

2차원 배열

 

배열의 장점

빠른 접근 속도 / 메모리 관리 용이성 / 이해하기 쉬운 구조 / 연속적인 메모리 할당

단점

고정된 크기 / 메모리 낭비 / 삽입과 삭제의 어려움 / 비효율적인 크기 변경


참고자료

https://velog.io/@kiduki555/%EB%B0%B0%EC%97%B4Array%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83

 

배열(Array)의 모든 것

배열의 모든것....!

velog.io

https://ko.wikipedia.org/wiki/%EB%B0%B0%EC%97%B4

 

배열 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 컴퓨터 과학에서 배열(영어: array, 配列·排列, 문화어: 배렬)은 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열

ko.wikipedia.org