티스토리 뷰

Study/C++

[C++] Vector Container 에 관하여

YouJungJang 2021. 11. 14. 13:52

Vector는 C++ 언어를 사용해 여러 코드를 구성할 때 정말 유용하게 쓸 수 있는 자료구조이다. 

C++의 배열은 선언 시 배열의 '사이즈'가 정해져 있어야만 하는데, 여러 가지 동적 할당의 경우의 수가 많은

복잡한 코드를 구성할 때는 처음부터 사이즈를 정할 수 없거나, 사이즈를 능동적으로 줄였다 늘렸다 하는 경우가 

많기 떄문에 이럴 때 'vector'를 사용하면 편리하다.

 

1. Vevtor 기본 사용법

  • vector가 정의되어 있는 헤더 파일 <vector>를 include 해준다.
  • 선언 방법: vector<[data type]> [변수 명] (ex: vector <int> v;)
  • data type에는 내가 선언해줄 vector의 원소들의 데이터 타입을 입력해주면 되고, 변수 명에는 해당 벡터의 이름을 붙여주면 된다.
  • 참고로, <[data type]>에는 vector도 넣어줄 수 있기 때문에 이를 응용하면, 이중 벡터를 구현해서 편리하게 사용할 수 있다.

 

2. Vector의 멤버 함수 (예제 선언: vector <int> v;)

  • v [index]: index 번째 원소를 참조한다. 범위를 점검하지 않아 v.at [index]보다 속도가 빠르다. 
  • v.at [index]: index 번째 원소를 참조한다. 범위를 점검하므로 v [index]보다 속도가 느리지만 안전하다.
  • v.push_back(3) : 맨 마지막 원소 뒤에 원소 3을 삽입한다. (자동으로 벡터의 사이즈가 1 증가한다.) 
  • v.pop_back() : 맨 마지막 원소를 제거한다.
  • v.size(): 원소의 개수를 리턴한다.
  • v. capacity(): 할당된 공간의 크기를 리턴한다. (size와 capacity의 차이는 레퍼런스를 참고하자)
  • v.insert(2,3) : 2번 방에 3을 삽입한다. 이때, 삽입한 곳의 iterator를 반환한다.

 

3. vector 예제 : 코드를 직접 보며 사용법을 익혀보자

#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector<int> v;

    //사이즈를 입력받아서 사이즈 만큼 벡터에 원소를 저장할 수 있다.
    int size;
    cout << "vector size: ";
    cin >> size;

    //for문을 사용해 vector에 원소를 담고 vector를 출력해보자
    for (int i = 0; i < size; i++) {
        v.push_back(i + 1);
        cout << "v= [ ";
        for (int j = 0; j < v.size(); j++) {
            cout << v[j]<<" ";
        }
        cout << "], v.size= "<<v.size()<<endl;
    }
    return 0;
}

 

출력 결과:

vector size: 7
v= [ 1 ], v.size= 1
v= [ 1 2 ], v.size= 2
v= [ 1 2 3 ], v.size= 3
v= [ 1 2 3 4 ], v.size= 4
v= [ 1 2 3 4 5 ], v.size= 5
v= [ 1 2 3 4 5 6 ], v.size= 6
v= [ 1 2 3 4 5 6 7 ], v.size= 7

 

size를 입력받으면 for문에서 원소를 push_back 하기만 하면, 자동으로 메모리가 늘어나면서 size가 늘어나고, 원소가 제대로 삽입되어 있는 모습을 확인할 수 있다. 이렇게 vector를 이용하면 여러 가지 동적 할당 알고리즘을 효율적으로 구성할 수 있다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함