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