[cpp] vector 사용법

roopre·2022년 6월 9일
0

코딩테스트준비

목록 보기
5/6

vector

  • 헤더파일 추가

생성 및 선언

  • vector v; // 비어있는 vector v 생성
  • vector v(5); // 기본값 (0)으로 초기화된 5개 원소 가지는 v 생성
  • vector v(5,2); // 2로 초기화된 5개 원소가지는 v 생성
  • vector v2(v1); // v1을 복사해서 생성

vector의 함수

v.assign(5,2)

  • 2의 값으로 5개의 원소 할당

    v.at(idx)

  • idx번째 원소를 참조

  • v[idx]보다 느리지만, 범위를 점검하므로 안전

    v[idx]

  • idx번째 원소 참조

  • 범위를 점검하지않으므로 속도가 빠름

    v.front()

  • 첫번째 원소 참조

    v.back()

  • 마지막 원소 참조

    v.clear()

  • 모든 원소 제거

  • 원소만 제거하고 메모리는 남아있음

  • size만 줄어들고 capacity는 남아있음

    v.push_back(a)

  • 마지막 원소 뒤에 a를 삽입

    v.pop_back()

  • 마지막 원소 제거하고 리턴

    v.begin()

  • 첫번째 원소를 가리킴 (iterator와 사용)

    v.end()

  • 마지막의 "다음"을 가리킴 (iterator와 사용) 사실상 원소 없음

    v.rbegin()

  • reverse begin을 가리킴 (거꾸로 처음의 다음을 가리킴)

  • iterator와 사용

    v.rend();

  • reverse end를 가리킴 (거꾸로 마지막의 다음)

  • iterator와 사용

    v.reserve(n)

  • n개의 원소를 저장할 위치를 예약 (동적할당)

    v.resize(n)

  • 크기를 n으로 변경한다.

  • 더 커졌을 경우 default값인 0으로 초기화

    v.resize(n,3)

  • 크기를 n으로 변경한다.

  • 더 커졌을 경우 인자의 값을 3으로 초기화

    v.size()

  • 원소의 갯수를 리턴

    v.capacity()

  • 할당된 공간의 크기 리턴

    v2.swap(v1)

  • v1과 v2의 모든걸 swap해줌

    v.insert(2,3,4)

  • 2번째 위치에 3개의 4 값을 삽입 (그대로 밀림)

    v.insert(2,3);

  • 2번째 위치에 3의 값을 삽입

  • 삽입한 곳의 iterator를 반환

    v.erase(iter);

  • iter가 가리키는 원소 제거

  • size 줄어듦

    v.erase(start,end)

  • start~end 삭제 (start이상 end미만)

  • v.erase(3,6) -> 3,4,5 삭제

    v.empty()

  • 비어있으면 true 리턴

profile
Roopretelcham

0개의 댓글