vector
C++의 표준 라이브러리(STL, Standard Template Library)에 포함된 동적 배열 컨테이너입니다. 이는 크기가 고정된 배열과는 달리, 필요에 따라 크기가 자동으로 조정되며 요소를 추가하거나 제거할 수 있습니다.
vector의 정의와 vector관련 함수를 사용하기 위해서는 <vector> 헤더파일을 추가해야합니다. 해당 헤더파일을 추가하면 std 네임스페이스를 통해 vector를 사용할 수 있습니다.
std::vector 주요 특징
- 동적 크기 조정
- 초기 크기를 정하지 않거나, 정한 크기를 초과하여 요소를 추가해도 자동으로 크기를 늘려줌.
- 크기 조정은 메모리 재할당을 통해 이루어짐.
- 임의 접근 (Random Access)
- 배열처럼 인덱스를 통해 O(1) 시간 복잡도로 요소에 접근 가능.
- 유연한 메모리 관리
- 필요한 만큼 메모리를 할당하고, 필요 없으면 해제함.
- STL 알고리즘과 호환성
- std::sort, std::find 등 여러 STL 알고리즘에서 쉽게 사용할 수 있음.
사용법
- #include <vector>
- std::vector를 사용하려면 반드시 헤더 파일을 포함해야 함
- 선언 및 초기화
주요 멤버 함수
함수명 | 설명 |
push_back(const T& value) | 벡터의 끝에 값을 추가합니다. |
pop_back() | 벡터의 마지막 요소를 제거합니다. |
size() | 벡터에 저장된 요소의 개수를 반환합니다. |
empty() | 벡터가 비어 있는지 여부를 반환합니다. |
resize(size_t n) | 벡터의 크기를 변경합니다. |
clear() | 벡터의 모든 요소를 제거합니다. |
at(size_t index) | 주어진 인덱스의 요소를 반환합니다. (범위 체크 포함) |
operator[] (인덱스 연산자) | 주어진 인덱스의 요소를 반환합니다. (범위 체크 없음) |
front() | 벡터의 첫 번째 요소를 반환합니다. |
back() | 벡터의 마지막 요소를 반환합니다. |
begin() | 벡터의 첫 번째 요소를 가리키는 반복자를 반환합니다. |
end() | 벡터의 마지막 요소 뒤를 가리키는 반복자를 반환합니다. |
insert(iterator pos, const T& val) | 지정된 위치에 값을 삽입합니다. |
erase(iterator pos) | 지정된 위치의 요소를 제거합니다. |
swap(std::vector& other) | 두 벡터의 내용을 교환합니다. |
shrink_to_fit() | 용량을 실제 요소 개수에 맞게 축소합니다. (메모리 최적화) |
data() | 벡터의 첫 번째 요소에 대한 포인터를 반환합니다. |
capacity() | 벡터의 할당된 메모리 용량을 반환합니다. |
결론
std::vector는 배열보다 더 유연하고 강력한 데이터 구조로, 특히 동적 메모리가 필요한 경우 유용합니다. 이를 활용해 효율적인 C++ 코드를 작성할 수 있습니다.
'C++ > STL 컨테이너' 카테고리의 다른 글
STL 컨테이너 - queue (0) | 2025.01.07 |
---|---|
STL 컨테이너 - stack (0) | 2025.01.07 |
STL 컨테이너 - list (0) | 2025.01.07 |
STL 컨테이너 - array (0) | 2025.01.07 |
STL 컨테이너 - map (0) | 2024.11.25 |