C++) 27. vector

2021. 4. 15. 05:14C++

728x90

1) vector

 

vector는 동적 배열로써 대표적인 STL의 한 종류입니다.

 

기본적인 선언형식은 다음과 같습니다.

#include <vector> // vector를 사용하려면 vector의 헤더파일을 불러와야한다

vector<데이터타입> vector이름

간단한 예제를 들어보겠습니다.

 

>>조사식


2) size, capacity

// size : 실제 데이터 사용 개수
// capacity : 여유분을 포함한 용량

vector는 데이터의 양의 따라 capacity를 늘려가면서 메모리를 관리하게 됩니다.

 

capacity를 초과하게 되면 기존 배열을 복사해서 더 큰 capacity의 배열로 옮겨가게 됩니다.

 

여유분을 두는 이유는 메모리가 커져감에 따라 데이터를 복사하고 옮기는 부담감이 커지기 때문에 여유분을 두는 것입니다.

 

간단한 예제를 들어보겠습니다.

>>결과

size가 capacity를 초과하게 되면 capacity가 커지는 것을 알 수 있었습니다.


3) iterator(반복자)

 

iterator는 컨테이너의 원소를 가리키고 이전/다음 원소로 이동할 수도 있습니다. 

 

간단한 예제를 들어보겠습니다.

 

>>결과

또한 iterator는 vector뿐만 아니라 다른 모든 STL에도 사용할 수 있습니다.


3) end()

 

iterator를 사용해 end() 함수를 사용해보겠습니다.

 

그리고 조사식을 통해 itEnd가 어떤 값을 가리키는지 확인해 보았습니다.

>>조사식

itBegin의 값은 처음 원소를 가리키는데 itEnd의 값은 엉뚱한 값을 가리키고 있는 것을 알 수 있습니다.

 

메모리를 통해 확인해 보았습니다.

>>메모리

itEnd가 가리키는 값은 vector가 끝났음을 알리는 부분을 가리키고 있었습니다.

 

 

728x90

'C++' 카테고리의 다른 글

C++) 28. List  (0) 2021.04.16
C++) 26. 템플릿 기초  (0) 2021.04.07
C++) 25. 함수 객체(Functor)  (0) 2021.04.06
C++) 24. 함수 포인터  (0) 2021.04.06
c++) 23. 캐스팅(타입 변환)  (0) 2021.04.02