1. vetor란?
동적 배열을 제공하는 STL의 컨테이너이다. 동적 크기의 배열처럼 동작하며, 요소를 쉽게 추가, 삭제, 액세스 할 수 있다.
2. vector의 특징
- 동적 크기 조정
- 배열과 달리 vector는 크기가 고정되지 않고 요소를 추가하거나 삭제할 때 자동으로 크기를 조정한다.
- 템플릿 클래스
- 특정 데이터 타입을 지원하도록 템플릿으로 작성되었기 때문에 std::vector<int> 또는 std::vector<string> 처럼 다양한 타입의 데이터를 저장할 수 있다.
- 임의 접근 지원
- 배열처럼 인덱스를 통해 O(1)의 시간 복잡도로 요소에 접근할 수 있다.
- ※ O(1)의 시간 복잡도란 알고리즘이나 연산이 입력 크기와 무관하게 항상 일정한 시간이 걸리는 경우
- 메모리 관리 자동화
- 메모리 관리를 자동으로 처리하여 메모리 누수를 방지한다.
예시
#include <vector>
#include <iostrem>
using namespace std;
vector<int> numbers; // 정수형 vector 선언
numbers.push_back(10); // 요소 추가
numbers.push_back(20);
// 요소 출력
for(int i = 0; i < numbers.size(); i++)
{
cout << numbers[i] << " ";
}
결과값
10 20
3. 주요 함수
| push_back(value) | 맨 끝에 요소를 추가 |
| pop_back() | 맨 끝 요소를 제거 |
| size() | 현재 요소의 개수를 반환 |
| clear() | 모든 요소를 제거 |
| empty() | 벡터가 비어있는지 확인 |
| at(index) | 지정된 인덱스 요소를 반환 |
| operator[] | 배열처럼 요소에 접근 |
| begin() / end() | 처음과 끝 반복자 반환 |
| erase(iterator) | 지정된 위치에 요소를 제거 |
| insert(interator, value) | 지정된 위치에 요소를 삽입 |
'C++' 카테고리의 다른 글
| 전략 패턴을 이용한 정렬 알고리즘 (0) | 2025.01.20 |
|---|---|
| string을 매개변수로 받을 때 &를 사용하는 이유 (0) | 2025.01.07 |
| C++ 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) (0) | 2025.01.07 |
| C++ unique_ptr과 shared_ptr (0) | 2024.12.26 |
| C++ rand() 사용해서 난수 만들기 (0) | 2024.12.23 |