본문 바로가기
서적 정리/C++ 기초 플러스

21.배열의 대안

by 민돌이2 2022. 8. 9.

배열은 다소 불편한 점이 있다. 원소가 얼마나 필요한지 알 수 가 없는데, 크기를 미리 지정해야 하니 넉넉하게 잡을 수 밖에 없다. 실제로 10개만 사용하는데, 넉넉잡아 50개로 잡았다면 40만큼의 메모리는 낭비하는 것이다. 이에 대한 대안이 있다.

 

 

Vector 템플릿 클래스

vector 템플릿은 동적 배열에 속하는 string 클래스와 유사하다. 프로그램이 실행되는 동안 vector 객체의 크기를 설정할 수 있고, 새로운 데이터를 마지막에 추가하거나 중간에 데이터를 삽입할 수 있다. 기본적으로 동적 배열을 생성하기 위에 new를 사용하는 것을 대체할 수 있다. 실제로 vector 클래스는 메모리를 관리하기 위해서 new와 delete를 자동으로 사용한다.

vector의 기본형은 아래와 같다.

std::vector<typeName> vt(element);

typeName은 자료형이고, element는 원소의 개수이다. element는 생략할 수 있다.

 

 

array 템플릿 클래스(C++11)

vector 클래스는 내재 배열 형보다 많은 기능을 지니고 있지만, 비효율적인 면이 있다. 만약 고정된 크기의 배열만 필요하다면, 내재 배열형을 사용하는 것이 나을 수도 있다. 이때 사용을 고려해볼 법한게 array 템플릿 클래스이다.

array의 기본형은 아래와 같다.

std::array<typeName, element> arr;

typeName은 자료형이고, element는 원소의 개수이다. element는 생략할 수 없고, 변수도 될 수 없다. 이는 배열과 똑같다.

728x90

'서적 정리 > C++ 기초 플러스' 카테고리의 다른 글

22.for 루프  (0) 2022.09.13
20.변수형의 조합  (0) 2022.08.09
19.포인터, 배열, 포인터 연산  (0) 2022.08.09
18.포인터와 메모리 해제  (0) 2022.08.03
17.열거체(enumeration)  (0) 2022.08.03
16.공용체(union)  (0) 2022.08.03
15.구조체(struct)  (0) 2022.08.03
14.string 클래스  (0) 2022.07.29

댓글