std::vector의 단점
- 생성, 소멸 비용이 큼, 사용해야 하는 벡터가 많을 수록 증가
- 확장시 메모리 재배치가 일어나서 오버헤드 증가
- 벡터 객체는 대부분 32바이트를 차지하므로 메모리에 비효율
- 동적으로 증가하거나 감소하는 경우 불필요한 벡터 간 복사가 일어남
배열의 단점
- 컴파일 타임에 크기가 결정되면 변경 불가
- 배열의 이름은 첫번째 원소의 포인터-> 묵시적 타입변화 가능
std::array
- 정해진 시간에 임의 접근 가능, 스택 메모리에 연속으로 요소를 배치
- 생성자, 소멸자, 복사 생성자, 대입 연산자 지원
- 부모 타입으로 타입 변환 금지(같은 부모 상속 이라도 서로 다른 클래스인 경우 포인터라도 다르게 취급함)
- 크기가 고정, 크기를 알 수 있음, 요소가 하나도 없어도 됨, 대입이 가능
'programing > C++' 카테고리의 다른 글
조이패드(Joypad) Input (0) | 2016.09.09 |
---|---|
[Modern C++] 스마트 포인터 (0) | 2016.08.16 |
[Modern C++] 유니폼 초기화(vector) (0) | 2016.08.16 |
[Modern C++] range-based for (범위 기반 for문) (0) | 2016.08.16 |
[Modern C++] 람다 함수 & decltype (0) | 2016.08.16 |