본문 바로가기

알고리즘/Cheat Sheet

CheatSheet :: C++ <vector> container 활용법

<vector> container

장점

  • vector를 선언하면 heap 영역에 자동으로 할당되어 메모리 관리가 용이하다.
  • 앞 뒤로 원소를 추가하고 삭제하는게 쉽다.

단점

  • vector도 배열처럼 메모리에 연속적으로 저장된다.
  • 그런데 길이가 가변적으로 변하는 vector는, 공간이 없으면 전체적인 재할당이 이루어져야하기 때문에 데이터가 많아지면 속도가 느려질 수 있다.

선언과 초기화

#include <vector>
 
vector <int> v;                     // int타입 vector 생성
vector <int> v(5);                  // 0으로 초기화된 5개의 원소를 가지는 vector 생성
vector <int> v(52);               // 2로 초기화된 5개의 원소를 가지는  vector 생성
vector <int> v = { 123 };       // int형 vector 생성 후 1, 2, 3 으로 초기화
vector <int> v[10];                 // int타입 vector 배열(크기 : 10) 생성

2차원 vector 선언

원리

vector < vector <int> > v;
vector <int> v1;
vector <int> v2;
 
v.pushback(v1);
v.pushback(v2);

 

응용 (입력받으면서 2차원 N행 M열 크기의 vector 생성하기)

vector < vector<int> > v;
 
for(int i = 0; i < N ; i++)
{
    vector <int> v_temp;
    for(int j = 0; j < M; j++)
    {
        int x;
        cin >> x;
        v_temp.push_back(x);
    }
    v.push_back(v_temp);
}

 


멤버함수들

  • v.front() : 첫번째 원소 참조
  • v.back() : 마지막 원소 참조
  • v.push_back(7) : 마지막 원소 뒤에 7을 삽입.
  • v.pop_back() : 제일 마지막 원소 삭제
  • v.begin() : 첫번째 원소를 가리킴.
  • v.end() : 마지막 원소의 다음을 가리킴.
  • v.size() : 원소의 개수
  • v.empty() : 벡터가 비어있으면 true 리턴

 

ps 풀면서 차차 보강 예정 ...

'알고리즘 > Cheat Sheet' 카테고리의 다른 글

Greedy Algorithm  (0) 2021.08.02
프로그래머스 SQL kit 문제 정리  (1) 2021.03.15