[C++] Vector

z_zen ㅣ 2025. 1. 9. 23:10

728x90

Vector : 동적 배열을 구현한 표준 템플릿 라이브러리(STL) 컨테이너로, 크기가 가변적이며 다양한 타입의 데이터를 저장


1. 벡터 선언 및 초기화

기본 선언

std::vector<int> v; // 정수형 벡터 선언

크기 지정 및 초기화

std::vector<int> v(5, 0); // 크기 5, 모든 값이 0으로 초기화된 벡터

초기화 리스트 사용

std::vector<int> v = {1, 2, 3}; // {1, 2, 3}으로 초기화

2. 요소 추가 및 제거

요소 추가

v.push_back(4); // 벡터의 끝에 4를 추가

요소 제거

v.pop_back(); // 벡터의 마지막 요소 제거

3. 요소 접근

인덱스를 이용한 접근

int first = v[0]; // 첫 번째 요소

at() 함수로 접근

int second = v.at(1); // 두 번째 요소

front()와 back() 사용

int first = v.front(); // 첫 번째 요소 
int last = v.back(); // 마지막 요소

4. 크기 및 상태 확인

크기 확인

std::size_t size = v.size(); // 벡터의 크기 반환

비어있는지 확인

bool isEmpty = v.empty(); // 비어있으면 true 반환

크기 조정

v.resize(10); // 벡터의 크기를 10으로 조정 (부족한 공간은 기본값으로 채움)

5. 삽입 및 삭제

특정 위치에 삽입

v.insert(v.begin() + 1, 10); // 두 번째 위치에 10 삽입

특정 위치 요소 제거

v.erase(v.begin() + 2); // 세 번째 요소 제거

모든 요소 제거

v.clear(); // 벡터 비우기

6. 2차원 벡터 사용

2차원 벡터 선언

std::vector<std::vector<int>> matrix; // 2차원 벡터 선언

2차원 벡터에 행 추가

matrix.push_back({1, 2, 3}); // 첫 번째 행 추가 
matrix.push_back({4, 5, 6}); // 두 번째 행 추가

7. 정렬

오름차순 정렬

std::sort(v.begin(), v.end()); // 벡터를 오름차순으로 정렬

내림차순 정렬

std::sort(v.begin(), v.end(), std::greater<int>()); // 내림차순 정렬

 


8. find()

특정 값 인덱스 위치 찾기

if(find(v.begin(), v.end(), 2) != v.end()) // 벡터 안에 2 있는지 확인
        cout << find(v.begin(), v.end(), 2) - v.begin(); // 있으면 해당 인덱스 위치 출력

 

9. pair 타입

vector<pair<int, int>> v;

// 요소 추가
v.push_back({1, 2});
v.push_back({3, 4});
v.push_back({5, 6});

// first와 second 사용
for (int i = 0; i < v.size(); i++) {
cout << "First: " << v[i].first << ", Second: " << v[i].second << endl;
}

 

728x90