std::vector는 C++ 표준 라이브러리에서 제공하는 동적 배열 클래스입니다. 크기가 가변적이며, 요소 추가 및 삭제 시 자동으로 크기를 조정합니다. std::vector는 내부적으로 연속적인 메모리 블록에 데이터를 저장하므로, 요소에 대한 임의 접근이 빠릅니다.
주요 특징
- 동적 크기 조정: 필요에 따라 크기를 자동으로 조정합니다.
- 임의 접근: 배열처럼 인덱스를 사용하여 요소에 빠르게 접근할 수 있습니다.
- 메모리 관리: 메모리 할당 및 해제를 자동으로 처리합니다.
- 유연한 사용: 다양한 편의 메서드(push_back, pop_back 등)를 제공하여 사용이 간편합니다.
예제
#include <iostream> #include <vector> int main() { // 정수형 벡터 선언 std::vector<int> numbers; // 요소 추가 numbers.push_back(10); numbers.push_back(20); numbers.push_back(30); // 벡터 크기와 요소 출력 std::cout << "Vector size: " << numbers.size() << std::endl; std::cout << "Elements: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; // 요소 접근 및 수정 numbers[1] = 50; std::cout << "Modified second element: " << numbers[1] << std::endl; // 요소 삭제 numbers.pop_back(); std::cout << "After pop_back, vector size: " << numbers.size() << std::endl; // 벡터의 모든 요소 출력 std::cout << "Final elements: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; } |
주요 메서드
- push_back(value): 벡터 끝에 요소를 추가합니다.
- pop_back(): 벡터 끝의 요소를 제거합니다.
- size(): 벡터의 현재 크기를 반환합니다.
- capacity(): 벡터가 메모리를 재할당하지 않고 저장할 수 있는 최대 요소 수를 반환합니다.
- empty(): 벡터가 비어 있는지 확인합니다.
- clear(): 벡터의 모든 요소를 제거합니다.
- at(index): 인덱스를 사용하여 요소에 접근합니다(범위 검사 포함).
장점
- 배열과 달리 크기를 미리 알 필요가 없습니다.
- 메모리 관리를 신경 쓸 필요가 없습니다.
단점
- 메모리 재할당 시 성능이 저하될 수 있습니다.
- 배열보다 메모리 오버헤드가 더 클 수 있습니다.
std::vector는 C++에서 유용하고 많이 사용되는 컨테이너로, 대부분의 상황에서 배열보다 더 유연하게 사용할 수 있습니다.
'Computer Programming > C,C++,MFC' 카테고리의 다른 글
[C]LineDraw - 브레젠험 알고리즘 (0) | 2021.06.29 |
---|---|
[C/C++] C언어 입력함수 scanf (0) | 2017.02.15 |
[C/C++] Bit Field, 비트 변수 ':' (0) | 2017.02.13 |
[C/C++] fopen 함수의 옵션값 정리 (0) | 2016.11.10 |
[C/C++] bsearch 함수 (0) | 2016.06.22 |