본문 바로가기

Algorithm/Basic

[C++] Vector Container 사용법 정리

1. Vector Container란

참고. http://tmp4by.blogspot.com/2018/02/c-std-map-set.html

C++ STL에 포함된 자료구조로 동적할당되어 작동하며 메모리를 효율적으로 관리할 수 있는 container입니다.

 

2. 사용법

1) 초기화

#include <vector>

// vector<자료형> 변수명;
vector<int> intVector;
vector<string> stringVector;

// vector<자료형> 변수명(숫자);
// 숫자만큼의 크기로 vector가 생성되고 각 자료형의 초기값으로 전체 설정된다
vector<int> intVector(10);

// vector 생성과 동시에 초기화
vector<string> stringVector(3) = {"a", "b", "c"};
vector<int> intVector(2, 3); // 크기는 2, 값은 3으로 초기화 

// vector 복사 초기화
vector<int> intVector1(intVector2);

 

2) 함수

 

# 찾기 관련

  • vector.at(index)
    index번째 원소를 참조. vector[index] 보다 느리지만 범위를 벗어난 원소 참조시 에러 발견 용이
  • vector[index]
    index번째 원소를 참조. vector.at(index) 보다 빠름
  • vector.front()
    첫번째 원소 참조.
  • vector.back()
    마지막 원소 참조.
  • vector.begin()
    첫번째 원소의 주소값을 참조. iterator와 함께 사용
  • vector.end()
    마지막 원소의 주소값을 참조. iterator와 함께 사용

 

# 크기 관련

  • vector.size()
    벡터의 크기를 반환. capacity 아니고 size
  • vector.capacity()
    벡터의 capacity를 반환.
  • vector.resize(n)
    벡터의 크기를 n으로 변경, 작아질 경우 할당 해제, 더 커질경우 자료형의 기본값으로 초기화
  • vector.resize(n, 초기화값)
    위의 함수에서 더 커질경우 값을 초기화값으로 설정
  • vector.empty()
    벡터가 비어있는지 bool값으로 return

 

# 입력 관련

  • vector.push_back(n)
    n을 마지막 원소 뒤에 추가
  • vector.insert(index, n)
    index위치에 n을 삽입. 뒤의 값들은 밀림. 삽입된 위치 iterator 반환
  • vector.assign(n, t)
    t값으로 n개의 원소를 할당한다.

# 삭제 관련

  • vector.pop_back()
    마지막 원소를 제거.
  • vector.erase(iterator)
    iterator 위치의 원소 제거. ex) vector(vector.begin()) => 벡터의 첫번째 원소 제거
  • vector.erase(start, end)
    [start, end) 범위의 원소들을 제거. [ -> 포함, ) -> 미포함
  • vector.clear()
    모든 원소를 제거. capacity는 남아있음

주의. 모든 함수를 표시하지는 않고 자주 사용하는 것만 표시했습니다


부족한 부분이 있다면 언제든 조언 부탁드립니다 ㅎㅎ

 

반응형

'Algorithm > Basic' 카테고리의 다른 글

[Java] LinkedList 사용법 정리  (0) 2020.09.19