ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • c++ 동적 배열 사용 vector
    Coding/Tip !! 2018. 9. 19. 17:37

    Vector

    기본 사용법이다. 

    Vector를 사용하면 동적인 배열을 사용할 수 있다.

    아래의 코드를 보자.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <iostream>
    #include <vector>
     
     
    int main(){
     
        //int *hello_arr = new int[5]; //보통 배열의 동적할당 시 이런식으로 할당한 뒤에
        vector<int> arr = { 12345 };
        
        for (auto &element :  arr)
            cout << element << " ";
        cout << endl;
     
        //delete[] hello_arr; // 마지막에 메모리를 헤제해줘야한다.
     
        return 0;
    }
    cs


    이런식으로 보통의 동적할당은 사용후에 delete를 해줘야하는 번거로움이 있지만

    vector를 사용하면 굳이 해주지않아도 블록밖으로 코드순서가 나가거나 return이

    일어나면 자동으로 해제되어서 메모리가 leak되지 않는다는 장점이 있다.


    또한 기존의 사용법에서는 *hello_arr만 봐서는 그 크기를 알 수 없지만

    vector를 사용하여 함수의 파라미터로 보내게되면 자신의 크기를 기억하고 있기 때문에 편리하다.

    ex) arr.size() 함수를 사용하면 크기를 알 수 있다.

    ex) arr.resize(숫자 크기)함수를 사용하면 동적할당 크기를 늘리거나 줄일 수 있다는 점이 있다.

    ex) arr.at(숫자크기)함수를 사용한다면??

    보통의 arr[10]의 경우 현재 배열의 크기가 5인데도 불구하고 배열의 크기를 넘었는지 넘지않았는지 검사없이 

    해당 메모리에 무조건 접근해보게된다.

    하지만 arr.at(10)하게되면 이러한 부분을 검사해보고 넘게되면 예외처리를 진행한다. -> 위에보단 살짝 속도가 느릴 수 있다.


    반응형

    'Coding > Tip !!' 카테고리의 다른 글

    매크로 함수  (0) 2018.10.03
    Header Gurad  (0) 2018.10.02
    C++ auto 키워드 사용하기  (0) 2018.09.19
    c++ 정적 배열사용 array  (0) 2018.09.19
    함수의 인자 사용 시, 레퍼런스 이용하기!  (0) 2018.09.19

    댓글

Designed by Tistory.