<vector> 헤더파일에 정의되어 있음
1. 선언 방법
std::vector<Type> vec; // 벡터 선언
2. 벡터의 뒤에 데이터 삽입/삭제
vec.push_back(data); // 벡터의 뒤에 데이터 삽입
vec.pop_back(); // 벡터의 뒤에서 데이터 삭제
3. 이터레이터
이터레이터 type : typename std::vector<T>::iterator itr
vec.begin() // 제일 앞을 가리키는 이터레이터
vec.end() // 제일 끝을 가리키는 이터레이터(마지막 원소의 한칸 뒤를 가리킴)
vec.cbegin() // 상수형 이터레이터
vec.cend()
일반적으로는 다음과 같이 사용
for(auto itr:vec) {
cout << vec << " ";
}
for(auto itr = vec.begin(); itr != vec.end(); i++) {
// 로직..
}
// 비어 있는 벡터는 다음과 같이 검사할 수도 있다.
if(vec.begin() == vec.end())
// 하지만 아래 메서드 또한 지원한다.
vec.empty(); // 비어 있으면 true, 아니면 false 반환
4. 참조 방식
인덱스 i인 원소에 접근하는 방법
vec[i]; // 배열처럼 접근
vec.at(i); // at 메서드를 활용해서 접근
vec.begin() + i; // 이터레이터를 활용해 접근
vec.front(); // 제일 앞 원소 접근
vec.back(); // 제일 뒤 원소 접근
5. 원하는 위치에 값 추가/삭제
vec.insert(iter, value); // 삽입
vec.erase(iter); // 삭제
// 해당 메서드들은 삭제할 위치의 이터레이터를 받는다.
// Insert의 경우 삭제할 value 또한 받음
vec.insert(index, value);
vec.erase(index);
// 해당 메서드는 인덱스를 사용하는 버전이다.
활용 방법
// 인덱스 1의 위치 뒤에 원소 2 추가
vec.insert(vec.begin() + 1, 2);
// 인덱스 1의 원소 삭제
vec.erase(vec.begin + 1);
6. 역이터레이터
// 역이터레이터. 역으로 데이터를 참조함.
vec.rbegin();
vec.rend();
// 상수 역이터레이터.
vec.crbegin();
vec.crend();
7. 벡터의 크기
vec.size();
8. 벡터의 크기 재할당
vec.resize(num);
'프로그래밍 언어 > C++' 카테고리의 다른 글
STL 컨테이너 - Deque (0) | 2023.02.14 |
---|---|
STL 컨테이너 - List (0) | 2023.02.14 |
C++ 문법 / Using 키워드 (0) | 2023.02.13 |
C++ 프로그래밍 방법론 / 템플릿 메타 프로그래밍(TMP) (0) | 2023.02.13 |
C++ 프로그래밍 방법론 / 함수 객체 Functor (0) | 2023.02.13 |
댓글