본문 바로가기
Algorithm/이론

[STL] vector 사용하기

by 우툴 2016. 4. 4.
728x90

vector 사용하기

 vector는 배열을 동적으로 사용하는 것이라고 보면 된다. 즉 길이가 변화는 배열이라고 보면 된다. vector의 특징을 보자면 

1. #include <vector> 에 존재

2. 배열인데 길이가 동적으로 변한다.

3. 순차적으로 삽입, 제거가 이루어진다.

4. 구현이 쉽다. 

5. 랜덤 접근이 용이하다. 

 정도가 있는거 같다. 나도 공부하면서 적기 때문에 모든 특성에 대해서 알지는 못하지만 내가 알게된 특징들을 중심적으로 적는다. 그리고 햇갈리는 것이 있다면 vector[] 와 vector()를 유의 해야한다. vector[] 는 vector 자체가 배열로 존재하는 것이고 vector()는 vector 하나의 사이즈인 것이다.

vector의 주요 멤버

 주로 사용하는 멤버를 설명하자면

 1. clear() - 모든 원소를 삭제 한다.

 2. empty() - vector가 비어있는지 아닌지 판단 비어있으면 true 아니면 false 반환한다.

 3. push_back( value ) - 마지막에 value 값을 추가해 준다.

 4. pop_back() - 마지막 원소를 삭제한다.

 5. resize() - vector의 크기를 재 설정해준다.

 6. begin() - 첫 번째 원소의 랜덤 접근 반복자를 반환

 7. end() - 마지막 원소의 다음의 반복자를 반환 (여기서 중요한건 마지막 원소가 아니라 그 다음 존재하지 않는 원소를 가르킨다)

 8. size() - 현재의 가지고 있는 배열의 크기를 반환한다. 

코드

현재 내가 자주 사용하는 vector의 요소들을 코드로 적어보았다.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
#include <vector>
using namespace std;
 
int main(void){
    
    //----------------------------------
    //    size가 5인 벡터를 만는다.
    //----------------------------------
    vector<int> size(5);
    //----------------------------------
    //    vector가 5개인 배열을 만든다.
    //----------------------------------
    vector<int> vectors[5];
    //----------------------------------
    //        push_pack, pop_back
    //----------------------------------
    vector<int> a;
    a.push_back(1);
    a.push_back(2);
    a.push_back(3);
    a.push_back(4);
    a.push_back(5);
 
    a.pop_back();
 
    vector<pair<intint>> couple;
    couple.push_back(make_pair(12));
    couple.push_back(make_pair(34));
    couple.push_back(make_pair(56));
 
    couple.pop_back();
 
    //----------------------------------
    //        비어있는가 확인
    //----------------------------------
    if (a.empty()){
        printf("vector가 비었습니다.");
    }
    //----------------------------------
    //        vector의 사이즈 확인
    //----------------------------------
    else{
        printf("vector의 size는 %d 입니다.\n", a.size());
    }
 
    //----------------------------------
    //        반복자를 이용한 반복
    //----------------------------------
    for (vector<int>::iterator it = a.begin(); it != a.end(); it++)
        printf("%d\n"*it);
 
    for (vector<pair<intint>>::iterator it = couple.begin(); it != couple.end(); it++)
        printf("%d %d\n", it->first, it->second);
 
 
}
cs


vector에 대해 찾아보니까 더 좋은 자료가 있는곳을 발견해서 주소를 적는다 : http://www.hanbit.co.kr/network/view.html?bi_id=1606



728x90

'Algorithm > 이론' 카테고리의 다른 글

[알고리즘] 이분 탐색  (0) 2016.04.06
[STL] sort 사용하기  (0) 2016.04.05
[STL] pair 사용하기  (1) 2016.04.04
[조합] nCr 쉽게 구하기. (수정 20190604)  (5) 2016.04.03
[그래프의 표현] 인접 리스트  (0) 2016.04.01

댓글