[C++] STL vector 정리

2024. 7. 3. 17:34·💻 Programming/C++

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 사용법

 

[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
'💻 Programming/C++' 카테고리의 다른 글
  • [Visual Studio Code] VS Code C++ 개발 환경 설정 (MinGW)
  • [C++/컴파일 에러] error: cannot jump from switch statement to this case label 에러 해결 및 원인
  • [C++] STL(Standard Template Library) 정리
  • [C++] STL vector 사용법
Mojing_
Mojing_
매일 매일 경험치를 쌓는 모징이의 개발 블로그입니다 :) This is Mojing’s Dev Blog where she gain experience points every day. :)
  • Mojing_
    모징이의 개발 경험치
    Mojing_
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 👻 Unity (3)
        • 🔧 기능 구현 (0)
        • 💡 유니티 팁 (0)
        • 📘 Unity 노트 (1)
        • 🏗️ 디자인 패턴 (0)
        • 🎨 그래픽 & 렌더링 (0)
      • 💻 Programming (14)
        • C (3)
        • C++ (9)
        • C# (0)
        • Swift (2)
      • 💾 Computer Science (16)
        • Algorithm (9)
        • Software Engineering (7)
      • 🐸 Problem Solving (108)
        • Programmers (41)
        • BOJ (67)
      • 🔋 ETC (0)
      • 💡 Quest Log (0)
  • 인기 글

  • 공지사항

  • 태그

    탐색
    backtracking
    DFS/BFS
    algorithm
    프로그래머스
    dynamic programming
    sort
    BOJ
    C++
    CS
    Problem Solving
    티스토리챌린지
    programmers
    Design Pattern
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Mojing_
[C++] STL vector 정리
상단으로

티스토리툴바