C++ STL(Standard Template Library, 표준 템플릿 라이브러리)의 시퀀스 컨테이너(Sequence Container) 중 하나인 vector에 대해 알아보자.
✒ 시퀀스 컨테이너(Sequence Container)란?
시퀀스 컨테이너(Sequence Container)는 배열처럼 요소들을 순차적으로 보관하는 컨테이너를 뜻한다.
참고로 다른 컨테이너인 연관 컨테이너(Associate Container)는 키(key)를 이용해 대응되는 값(value)에 접근한다.
참고 | STL과 컨테이너
컨테이너 종류에 대해 더 알고 싶으면 아래 "STL 정리"를 참고하자!
[C++] STL(Standard Template Library) 정리
vector 란?
vector는 C++ STL(Standard Template Library)의 시퀀스 컨테이너로, 동적으로 크기를 조절할 수 있는 배열을 제공하며, 요소들을 연속된 메모리 공간에 저장한다.
다양한 상황에서 유용하게 쓰이는 컨테이너이며, 특히 동적 배열이 필요할 때 매우 유용하다!
vector의 특징
- 동적 크기 조절 : 필요에 따라 크기를 자동으로 조절할 수 있다.
- 임의 접근 : 인덱스를 통해 빠르게 요소에 접근할 수 있다.
- 연속적인 메모리 할당 : 요소들이 연속된 메모리에 저장되어 메모리 접근 효율이 높다. (임의 접근 시간 복잡도는 O(1))
- 효율적인 끝 요소 추가 및 삭제 : vector의 끝에서 요소를 추가하거나 제거하는 작업이 빠르다.
- 템플릿 클래스 : 템플릿 클래스이므로, 모든 데이터 타입을 사용할 수 있다.
즉, vector를 사용하면 임의 접근이 가능하고, 요소의 추가 및 삭제가 vector 끝에서 효율적으로 이루어진다.
vector의 단점
vector도 일단은 배열이기 때문에 처음이나 끝이 아닌, 중간에 요소를 삽입하거나 삭제하는 작업이 느리다.
vector의 헤더파일 및 사용
- #include <vector>
- using namespace std; 를 사용하면 std::vector 대신 vector로 간략하게 사용이 가능하다. (네임스페이스 생략)
간단한 vector 생성 코드
#include <string>
#include <vector>
using namespace std;
int main()
{
// string형 요소들이 담긴 vector 생성
vector<string> insideOut = { "Joy", "Sadness", "Anger", "Disgust", "Fear" };
// int형 요소들이 담긴 vector 생성
vector<int> dataVec = { 3, 4, 5, 6 };
// 빈 int형 vector 생성
vector<int> emptyVec;
return 0;
}
vector의 구조
vector의 사용법
'💻 Programming > C++' 카테고리의 다른 글
[C++/컴파일 에러] error: cannot jump from switch statement to this case label 에러 해결 및 원인 (0) | 2024.07.23 |
---|---|
[C++] STL(Standard Template Library) 정리 (0) | 2024.07.04 |
[C++] STL vector 사용법 (0) | 2024.07.03 |