Language/C++

[C++] STL Vector 사용법 및 예제

0so0 2023. 7. 10. 00:08
728x90
반응형
SMALL

C++ STL중 하나인 Vector 사용법에 대한 정리(+예제)

Vector

C++ 표준 라이브러리(Standard Template Library)에 있는 순차 컨테이너(Sequence Container)로 크기가 가변적으로 변하는 배열
  • 자동으로 메모리가 할당되는 배열
  • 메모리에 연속적으로 저장
  • 맨 끝에서만 삽입과 삭제가 이루어짐
  • template을 이용하기 때문에 자유롭게 데이터 타입 사용 가능
  • 원소가 삽입될때 메모리 재할당이 발생 할 수 있음

Vector 선언

#include <vector>

vector<int> v; // vector<변수 타입> 이름 -> 크기 지정 X

vector<string> v(10) // vector<변수 타입> 이름(크기) 

vector<int> v(10, 1) // vector<변수 타입> 이름(크기, 초기화 상수) -> 크기 10 벡터를 1로 초기화

vector<int> v = {1, 2, 3} // int 형 벡터 초기화

vector<vector<int>> v // 2차원 벡터

Vector 멤버함수

  • 원소 접근
v[i] // vector의 i번째 원소 참조

v.at[i] // vector의 i번째 원소 참조

v.front() // vector의 첫번째 원소 참조
v.back() // vector의 마지막 원소 참조

//iterator 로 vector 아이템 접근
v.begin() // vector의 첫번째 위치의 iterator 리턴
v.end() // vector의 마지막 위치의 다음 iterator 리턴

 

  • 삽입/삭제
vector<int> v

// v.push_back(데이터) -> 맨 끝에 데이터 삽입
v.push_back(10);
v.push_back(20);

// v.pop_back() -> 맨 끝 데이터 삭제
v.pop_back();

// v.insert(위치, 데이터) -> 원하는 위치에 데이터 삽입
v.insert(2, 30);

// v.erase(iter) -> 반복자를 사용하여 특정 원소의 데이터 삭제
auto iter = v.begin()'
v.erase(iter) // 벡터의 첫번째 위치의 원소 삭제

//v.clear() -> 모든 값 제거
v.clear();

 

  • 크기
v.size();   //vector의 원소 갯수
v.capacity; //vector의 물리적 크기
728x90
반응형
LIST