본문 바로가기
개발/C++

Array와 List 비교

by 램램이 2020. 2. 6.

Array (배열)

  • 같은 자료형을 가진 다수의 데이터를 그룹핑해서 효율적으로 관리할 수 있는 자료형.
  • Index가 있어서, index를 이용하여 원하는 데이터에 접근하기 쉽다.
  • 연속된 메모리 공간으로 이루어져 있다.
  • 크기가 정해져있다.

배열의 장점

  • 인덱스를 통한 검색을 하기 때문에, 데이터 조회가 빠르다.

배열의 단점

  • 어떤 엘리먼트가 삭제 되면, 삭제된 빈 공간이 생기게된다. -> 빈공간으로 인한 메모리 낭비
  • 배열의 크기를 미리 정해야 한다.
  • 배열의 길이를 바꾸기 위해선 리소스 낭비가 크다.

 

 

List (리스트)

  • 순서가 있는 연속적인 데이터의 집합
  • 빈 엘리먼트는 허용 하지 않는다.
  • 데이터 갯수가 확실하게 정해져 있고, 자주 사용된다면 List보다 Array가 더 효율적이다.

리스트 장점

  • 빈틈없는 데이터의 적재 - 추가/삭제가 빈번하게 일어나는 상황에서 쓰기 좋다.
  • 처음, 끝, 중간에 엘리먼트를 추가/삭제 하는것, 리스트에 데이터가 존재하는지 체크 하는것과 같은 기능을 제공
  • 리스트의 모든 데이터에 접근 할 수 있다.

리스트 단점

  • 순차성을 보장하지 않기 때문에 Cash hit가 어렵다.
  • 정해져있는 크기가 변하지 않는다면, Array에 비해 효율적이지 못하다

댓글