-
c++ 동적 배열 사용 vectorCoding/Tip !! 2018. 9. 19. 17:37
Vector
기본 사용법이다.
Vector를 사용하면 동적인 배열을 사용할 수 있다.
아래의 코드를 보자.
1234567891011121314151617#include <iostream>#include <vector>int main(){//int *hello_arr = new int[5]; //보통 배열의 동적할당 시 이런식으로 할당한 뒤에vector<int> arr = { 1, 2, 3, 4, 5 };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 댓글