본문 바로가기
C++ Programming/기억해야할 점

9. stl vector 다루기

by 쵸빙 2020. 5. 3.

stl의 vector를 다루면서 배운 점을 정리해보겠다.

 

 

 

 

 

 

1. stl vector 사용법

 

#include <vector>

vector<자료형 또는 클래스나 struct명> 벡터이름;

 

- 벡터는 앞쪽이 막혀 있는 형태로 앞쪽에는 원소를 추가/제거할 수 없고 뒤쪽에만 추가/제거가 가능하다.

 

 

 

 

2. 벡터의 크기 지정 선언

 

- 만약 벡터의 크기를 미리 정의해놓고 싶다면 벡터이름(N); 이렇게 쓰면 된다.

 

 

 

 

 

3. 벡터 함수들

 

* 템플릿 형식

template<typename T, typename Allocator = allocator<T>>

class vector

 

- T는 vector 컨테이너 원소의 형식

 

 

 

* 생성자

vector v v는 빈 컨테이너이다.
vector v(n) v는 기본값으로 초기화된 n개의 원소를 갖는다.
vector v(n, x) v는 x값으로 초기화된 n개의 원소를 갖는다.
vector v(v2) v는 v2 컨테이너의 복사본이다. (복사 생성자 호출)
vector v(b, e) v는 반복자 구간 [b, e)로 초기화된 원소를 갖는다.

 

 

 

* 멤버 함수

 

v.assign(n, x) v에 x 값으로 n개의 원소를 할당한다.
v.assign(b, e) v를 반복자 구간 [b, e)로 할당한다.
v.at(i) v의 i번째 원소를 참조한다.
v.back() v의 마지막 원소를 참조한다.
p = v.begin() p는 v의 첫 원소를 가리키는 반복자
x = v.capacity() x는 v에 할당된 공간의 크기
v.clear() v의 모든 원소를 제거한다.
v.empty() v가 비었는지 조사한다.
p = v.end() p는 v의 끝을 표식하는 반복자
p = v.erase(p) p가 가리키는 원소를 제거한다. q는 다음 원소를 가리킨다.

 

q = v.erase(b, e) 반복자 구간 [b, e)의 모든 원소를 제거한다. q는 다음 원소
v.front() v의 첫 번째 원소를 참조한다.
q = v.insert(p, x) p가 가리키는 위치에 x값을 삽입한다. q는 삽입한 원소를 가리키는 반복자다.
v.insert(p, n, x) p가 가리키는 위치에 n개의 x값을 삽입한다.
v.insert(p, b, e) p가 가리키는 위치에 반복자 구간 [b, e)의 원소를 삽입한다.
x = v.max_size() x는 v가 담을 수 있는 최대 원소의 개수(메모리의 크기)
v.pop_back() v의 마지막 원소를 제거한다.
v.push_back() v의 끝에 x를 추가한다.
p = v.rbegin() p는 v의 역 순차열의 첫 원소를 가리키는 반복자다.
p = v.rend() p는 v의 역 순차열의 끝을 표식하는 반복자
v.reserve(n) n개의 원소를 저장할 공간을 예약한다.
v.resize(n) v의 크기를 n으로 변경하고 확장되는 공간의 값을 기본값으로 초기화한다.
v.resize(n, x) v의 크기를 n으로 변경하고 확장되는 공간의 값을 x값으로 초기화한다.
v.size() v의 원소 개수
v.swap(v2) v와 v2를 swap한다.

 

 

* 벡터 연산자

 

v1 == v2 v1과 v2의 모든 원소가 같은가? (bool)
v1 != v2 v1과 v2의 모든 원소 중 하나라도 다른 원소가 있는가?
v1 < v2 문자열 비교처럼 v2가 v1보다 큰가?
v1 > v2 문자열 비교처럼 v1이 v2보다 큰가?
v[i] v의 i번째 원소를 참조한다.

 

 

 

* 멤버 형식

 

allocator_type 메모리 관리자 형식
const_iterator const 반복자 형식
const_pointer const value_type* 형식
const_reference const value_type& 형식
const_reverse_iterator const 역 반복자 형식
difference_type 두 반복자 차이의 형식
iterator 반복자 형식
pointer value_type* 형식
reference value_type& 형식
reverse_iterator 역 반복자 형식

 

size_type 첨자(index)나 원소의 개수 등의 형식
value_type 원소의 형식

 

- 시퀀스 컨테이너는 차례차례 원소를 추가하고 제거하는 push_back과 pop_back()을 가지며, 

  첫 원소와 마지막 원소를 참조하는 front()와 back()을 가진다.

 

- 또한 지정한 위치에 원소를 삽입하는 insert()를 가진다.

 

 

 

 

 

 

 

 

 

 

- https://hyeonstorage.tistory.com/324의 내용을 참고했다.

 

 

 

 

 

 

 

 

계속 공부해나가면서 벡터와 관련하여 기억해야할 점을 채워나가겠다.

'C++ Programming > 기억해야할 점' 카테고리의 다른 글

8. 배열 다루기  (0) 2020.05.03
7. 정렬 다루기  (0) 2020.05.03
6. 문자열 다루기  (0) 2020.05.03
5. 알고리즘  (0) 2020.05.03
4. switch문, goto문  (0) 2020.05.03