C++ STL(Standard Template Library, 표준 템플릿 라이브러리)의 시퀀스 컨테이너(Sequence Container) 중 하나인 vector에 대해 알아보자.
✒ 시퀀스 컨테이너(Sequence Container)란?
시퀀스 컨테이너(Sequence Container)는 배열처럼 요소들을 순차적으로 보관하는 컨테이너를 뜻한다.
참고로 다른 컨테이너인 연관 컨테이너(Associate Container)는 키(key)를 이용해 대응되는 값(value)에 접근한다.
참고 | STL과 컨테이너
컨테이너 종류에 대해 더 알고 싶으면 아래 "STL 정리"를 참고하자!
[C++] STL(Standard Template Library) 정리
[C++] STL(Standard Template Library) 정리
☁ C++에서 자연스럽게 숨 쉬듯(?) 사용하는 STL에 대한 정리이다. STL(Standard Template Library)란?STL은 표준 템플릿 라이브러리 (Standard Template Library)의 약자이다. STL은 C++ 표준 라이브러리에 포함된 라
mojing.tistory.com
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의 사용법
[C++] STL vector 사용법
☁ 꼭 쓰려고만 하면 기억이 안 나는 나를 위해 정리한 vector 사용법이다.추후에 새로 알게 된 정보도 추가해나가려고 한다! vector의 기본 정리 [💻 Programming/C++] - [C++] STL vector 정리 vect
mojing.tistory.com
'💻 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 |