C++) 27. vector
2021. 4. 15. 05:14ㆍC++
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 |