프로그래밍/c++ STL

[c++ STL] Vector 기본 사용법 및 예제

rrruu 2020. 1. 2. 21:35
반응형

c++로 알고리즘 문제를 풀다보면 어쩔 수 없이 만나는 STL

그 중에서 가장 기본이 되는 시퀀스 컨테이너에서 또 기본이 되는

vector를 사용하는 방법을 알아보도록 하겠습니다.

 

기본적으로 선언을 하는 방법을 알아 봅시다.

 

#include<vector> 전처리기에 벡터를 사용한다고 알려주시고!

vector<저장할 자료형> 벡터이름 이런 형식으로 사용해 주시면 되겠습니다!

int형의 자료를 저장하는 int_vector라는 vector를 선언하는 것을 예로 들면

vector<int> int_vector;

이렇게 선언해주시면 됩니다.

 

선언 방법을 알았으니 사용법을 알아 봅시다.

 

vector<int> int_vector; 이런 식으로 선언을 해주었으면

이 벡터에 자료를 넣을 준비 된 것입니다.

int 형이니까 정수를 넣을 수 있겟죠!

간단하게 1,2,3을 순서로 넣어 봅시다.

벡터는 push_back으로 자료를 저장하기 때문에

뒤로 쌓아서 저장한다고 이해하시면 쉽습니다.

 

int_vector.push_back(1);

int_vector.push_back(2);

int_vector.push_back(3);

 

이렇게 해주시면 이 벡터에 1,2,3 숫자들이 순차적으로 저장이 된 것 입니다.

과연 정상적으로 들어 갔는지 확인을 해봐야 겠죠?

 

cout << int_vector[0];

 

배열을 사용하는 것 처럼 []안에 인덱스 번호를 넣으면 그 번호에 맞는 숫자가 출력이 됩니다.

위에서는 0 이니까 제일 처음에 넣은 1이 출력이 됩니다.

 

이제 저장을 해봤으니 삭제를 하는 방법을 알아 봅시다.

int_vector.erase(int_vector.begin()); 

이렇게 해주시면 첫번째 원소가 지워지게 됩니다.

여기서 int_vector.begin()은 벡터의 시작 지점을 가르키는 것 입니다.

반대로 int_vector.begin()은 벡터의 끝 지점을 가르킵니다.

응용해서 두번째 원소를 지울려면 int_vector.begin()+1을 넣어 주시면 됩니다.

 

한번에 지워버리는 것도 있습니다.

바로 clear() 입니다.

int_vector.clear() 이렇게 해주시면 모든 원소를 지우게 됩니다.

 

다 지워 졋는지 확인 하는 방법도 있습니다.

int_vector.empty() 이렇게 해주시면 비어 있는경우 true 하나라도 남아 있으면 false를 반환하게 됩니다.

if문을 이용하여 벡터의 상태를 확인할 때 주로 사용합니다.

 

여기까지의 내용을 정리한 것입니다.

실행 화면 입니다.

 

반응형