본문 바로가기
프로그래밍/C++

[C++ STL] std::vector 개념과 멤버 함수 정리 - 자료구조

by 워킹독 2022. 12. 7.
728x90

 

벡터(Vector)란?

  • 벡터는 동적 배열 구조를 C++로 구현한 것이다.
  • 이것은 C의 배열처럼 행동하지만 자동으로 배열의 크기 조절과 객체의 추가와 삭제가 가능하다.
  • 벡터는 C++ 표준 템플릿 라이브러리 중의 하나인 템플릿 클래스이다.
  • 어떤 타입이라도 저장할 수 있지만, 한 번에 한 타입만 저장이 가능하다 

 

벡터 헤더

  • #include <vector>

 

벡터 선언방법

  • vector<자료형> 변수명

 

벡터의 멤버 함수

  • v.front() : v의 첫 번째 원소
  • v.back() : v의 마지막 원소
  • v.assign(n,x) : n개의 원소에 x값을 할당
  • v.at(index) : v의 index번째의 원소
  • v[index] : v의 index번째의 원소 (배열처럼 사용)
  • v.push_back(x) : 마지막 원소에 x값 삽입
  • v.emplace_back(x) : (push_back과 동일한 작업)

※ 요약
C++11부터 추가된 멤버 함수로써 push_back과 같이 vector의 요소 끝에 원소를 추가하는 함수
push_back과 같은 삽입 함수들은 삽입할 객체를 받지만 emplace_back과 같은 생성 삽입 함수는 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를 생성하여 삽입하므로 임시 객체의 생성과 파괴, 복사(혹은 move)를 하지 않아도 되어 성능상 더 유리함

 

  • v.pop_back() : 마지막 원소 제거
  • v.begin() : v의 첫 번째 원소를 가리키는 iterator
  • v.end() : v의 마지막 원소의 다음을 가리키는 iterator
  • v.reserve(n) : n개의 원소들을 동적 할당
  • v.resize(n) : v의 크기를 n으로 지정
  • v.size() : v의 원소 개수를 리턴
  • v.capacity() : v에 할당된 공간의 크기를 리턴
  • v1.swap(v2) : v1과 v2의 원소, capacity를 모두 서로 바꿈
  • v.insert(n,x) : v의 n번째 위치에 x값을 삽입
  • v.erase(iterator) : iterator가 가리키는 v의 원소를 삭제
  • v.empty() : v가 비어있으면 1, 비어있지 않으면 0

 

728x90
반응형

댓글