이것저것 공부한 기록

C++) 자주 쓰는 Vector 정리 본문

Study/프로그래밍 개념정리

C++) 자주 쓰는 Vector 정리

블랜디 2019. 10. 26. 16:06

거의 push랑 참조밖에 안 쓰는거 같긴 한데...

 

메모리가 연속하게 저장되기 때문에, []나 at으로 읽는 속도는 빠르다

또한 다른 표준 컨테이너들과 비교할 때, 컨테이너의 끝에 새로운 원소를 삽입/삭제하는 시간이 효율적이다.

그러나 때문에 끝이 아닌 중간에 삽입하는 작업은 느리게 동작한다.

 

원소를 추가해서 size의 크기가 capacity를 넘어가버리면 내부적으로 추가적인 공간을 할당한다.

추가적으로 할당되는 공간은 거의 현재 벡터의 capacity만큼 할당된다

-> 즉, 전체 할당 크기가 이전의 두배가 됨.

 

벡터의 capacity를 확장하는 것 = 메모리를 새로 할당, 벡터의 내용을 복사

이기 때문에 꽤 시간이 걸림.

많은 원소를 추가해야 하는 경우 vector::reserve를 사용하여 capacity를 미리 크게 할당해 두는 것이 좋다.

 

멤버함수

v.at(i) v의 i번째 원소를 참조
v.front() v의 첫번째 원소를 참조
v.back() v의 마지막 원소를 참조
v.begin() v의 처음
v.end() v의 끝
v.push_back(x) v의 끝에 x를 추가
v.pop_back() v의 마지막 원소를 제거
v.size() v의 원소 개수

연산자

v1 == v2 v1과 v2의 모든 원소가 같은가?
v1 != v2 v1과 v2의 원소가 하나라도 다른가?
v1 < v2 문자열 비교처럼 동작함
v1 > v2 문자열 비교처럼 동작함
v[i] i번째 원소 참조

'Study > 프로그래밍 개념정리' 카테고리의 다른 글

C/C++) nth_element (header algorithm)  (0) 2019.11.16
C++) Set, Map 정리  (0) 2019.10.26
C/C++) 문자 종류 판별 정리  (0) 2019.10.26
C++) 입출력 정리  (0) 2019.10.17
C++) Const (상수) Pointer 정리  (0) 2019.09.23