• Mindscape 🔥
    • Playlist 🎧
  • Algorithm

    • 1018번: 체스판 다시 칠하기
    • 1966번: 프린터 큐
    • Python 시간 초과 방지를 위한 팁
    • C++ std::vector 사용법 정리
    • Vim 사용 매뉴얼
  • Ubuntu

    • 리눅스 우분투 GRUB 폰트 변경
    • 우분투 이미지 비디오 썸네일(미리보기) 안 보임 문제 해결
    • Wine 환경에서 카카오톡 실행 시 explorer.exe 뜨지 않게 하는 법
    • 우분투 Wine 카카오톡 사진 이미지 스크린샷 붙여넣기
    • Wine 카카오톡 이모지 깨짐 문제 해결
    • Ubuntu 윈도우 애니메이션 끄기
  • Wellness

    • 차전자피 (Psyllium Husk)
    • 엑스트라 버진 올리브유 (Extra Virgin Olive Oil)
    • 자가비강세척 (Nasal Irrigation)
    • QCY HT08 (MeloBuds Pro Plus)
    • 콘서타 (Concerta)
    • 인데놀 (Inderal)
    • 설트랄린 (Sertraline)
    • 멜라토닌 (Melatonin)
    • 치경부 마모증
    • 바벨 스쿼트 (Barbell Squat)
  • Humanities

    • Nordvik, Russia
    • North Sentinel Island
    • 롱고롱고(Rongorongo)
    • 바로크 음악 (Baroque Music)
  • Design

    • 구글의 아이콘 대개편: 6년 만의 실수 인정
    • 제럴드 젠타: 럭셔리 스포츠 워치의 창시자
    • 바우하우스: 현대 디자인의 원점
  • Brands

    • NOMOS Glashütte
    • Frédérique Constant
    • KZ
    • 에스트라 (AESTURA)
    • JINHAO (金豪)
    • Herman Miller
    • 데스커 (DESKER)
    • 무신사 스탠다드 (Musinsa Standard)
  • Finance

    • 현대카드 ZERO
    • 신한카드 처음
    • S&P 500 ETF 투자 가이드
    • 파킹통장 vs CMA 통장
    • 버크셔 해서웨이 (Berkshire Hathaway)
    • 비트코인 (Bitcoin)
  • Products

    • 오디오 인터페이스 (Audio Interface)
    • 쿠루토가 (KURUTOGA)
    • CX31993 DAC 동글
    • 클렌징 밀크 (Cleansing Milk)
    • 피젯 토이 (Fidget Toy)
    • ThinkPad

C++ std::vector 사용법 정리

작성 2026. 6. 13.·수정 2026. 6. 13.

vector

1. 기본 선언 및 초기화

#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector<int> v1;                         // 빈 벡터
    vector<int> v2(5);                      // 크기 5, 값은 0으로 초기화
    vector<int> v3(5, 10);                  // 크기 5, 값은 10으로 초기화
    vector<int> v4 = { 1, 2, 3, 4, 5 };     // 초기화 리스트 사용
}

2. 원소 접근

v4[0];       // 인덱스 접근 (범위 체크 X)
v4.at(2);    // 인덱스 접근 (범위 체크 O, 예외 발생 가능)
v4.front();  // 첫 번째 원소
v4.back();   // 마지막 원소

3. 삽입 및 삭제

vector<int> v = { 1, 2, 3 };

v.push_back(4);                     // 맨 뒤에 삽입 -> { 1, 2, 3, 4 }
v.pop_back();                       // 맨 뒤 원소 삭제 -> { 1, 2, 3 }

v.insert(v.begin(), 0);             // 맨 앞에 삽입 -> { 0, 1, 2, 3 }
v.insert(v.begin() + 2, 99);        // 인덱스 2에 삽입 -> { 0, 1, 99, 2, 3 }

v.erase(v.begin());                 // 첫 번째 원소 삭제 -> { 1, 99, 2, 3 }
v.erase(v.begin() + 1, v.end());    // 인덱스 1부터 끝까지 삭제 -> { 1 }

4. 크기 및 용량

v.size();           // 원소 개수
v.capacity();       // 현재 할당된 공간 크기
v.empty();          // 비었는지 확인
v.resize(10);       // 크기 조정 (부족분은 0으로 채움)
v.reserve(20);      // 용량을 미리 확보 (재할당 줄임)
v.shrink_to_fit();  // capacity를 size에 맞게 줄임

5. 반복자(iterator) 사용

for (auto it = v.begin(); it != v.end(); ++it)
    cout << *it << " ";

for (auto rit = v.rbegin(); rit != v.rend(); ++rit)
    cout << *rit << " "; // 역방향 순회

6. 범위 기반 for문

for (int x : v)
    cout << x << " ";

for (auto &x : v) // 참조로 접근하여 수정 가능
    x *= 2;

7. 기타 유용한 함수

v.clear();                          // 모든 원소 제거
v.swap(v2);                         // 다른 벡터와 교환
std::sort(v.begin(), v.end());      // 정렬
std::reverse(v.begin(), v.end());   // 뒤집기
std::find(v.begin(), v.end(), 3);   // 특정 값 탐색

8. 2차원 벡터

vector<vector<int>> matrix(3, vector<int>(4, 0));
// 3x4 행렬, 모든 값 0으로 초기화

이 문법들은 std::vector의 알고리즘 문제 풀이에서 가장 자주 쓰이는 핵심 사용법입니다.

최근 수정: 26. 6. 13. 오후 2:03
Contributors: kmbzn
Prev
Python 시간 초과 방지를 위한 팁
Next
Vim 사용 매뉴얼

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
© 2026 kmbzn · MIT License