1. Vector Container란
C++ STL에 포함된 자료구조로 동적할당되어 작동하며 메모리를 효율적으로 관리할 수 있는 container입니다.
2. 사용법
1) 초기화
#include <vector>
// vector<자료형> 변수명;
vector<int> intVector;
vector<string> stringVector;
// vector<자료형> 변수명(숫자);
// 숫자만큼의 크기로 vector가 생성되고 각 자료형의 초기값으로 전체 설정된다
vector<int> intVector(10);
// vector 생성과 동시에 초기화
vector<string> stringVector(3) = {"a", "b", "c"};
vector<int> intVector(2, 3); // 크기는 2, 값은 3으로 초기화
// vector 복사 초기화
vector<int> intVector1(intVector2);
2) 함수
# 찾기 관련
- vector.at(index)
index번째 원소를 참조. vector[index] 보다 느리지만 범위를 벗어난 원소 참조시 에러 발견 용이 - vector[index]
index번째 원소를 참조. vector.at(index) 보다 빠름 - vector.front()
첫번째 원소 참조. - vector.back()
마지막 원소 참조. - vector.begin()
첫번째 원소의 주소값을 참조. iterator와 함께 사용 - vector.end()
마지막 원소의 주소값을 참조. iterator와 함께 사용
# 크기 관련
- vector.size()
벡터의 크기를 반환. capacity 아니고 size - vector.capacity()
벡터의 capacity를 반환. - vector.resize(n)
벡터의 크기를 n으로 변경, 작아질 경우 할당 해제, 더 커질경우 자료형의 기본값으로 초기화 - vector.resize(n, 초기화값)
위의 함수에서 더 커질경우 값을 초기화값으로 설정 - vector.empty()
벡터가 비어있는지 bool값으로 return
# 입력 관련
- vector.push_back(n)
n을 마지막 원소 뒤에 추가 - vector.insert(index, n)
index위치에 n을 삽입. 뒤의 값들은 밀림. 삽입된 위치 iterator 반환 - vector.assign(n, t)
t값으로 n개의 원소를 할당한다.
# 삭제 관련
- vector.pop_back()
마지막 원소를 제거. - vector.erase(iterator)
iterator 위치의 원소 제거. ex) vector(vector.begin()) => 벡터의 첫번째 원소 제거 - vector.erase(start, end)
[start, end) 범위의 원소들을 제거. [ -> 포함, ) -> 미포함 - vector.clear()
모든 원소를 제거. capacity는 남아있음
주의. 모든 함수를 표시하지는 않고 자주 사용하는 것만 표시했습니다
부족한 부분이 있다면 언제든 조언 부탁드립니다 ㅎㅎ
반응형
'Algorithm > Basic' 카테고리의 다른 글
[Java] LinkedList 사용법 정리 (0) | 2020.09.19 |
---|