[C++] STL 총정리

2025. 12. 18. 21:17·내배캠Unreal_TIL/C++

1️⃣ 시퀀스 컨테이너 (Sequence Containers)

🔹 vector

가장 중요 ⭐⭐⭐⭐⭐

특징

  • 동적 배열
  • 메모리 연속
  • 빠른 인덱스 접근 O(1)
  • 뒤에서 삽입/삭제 빠름

주요 함수

vector<int> v;

v.push_back(10);
v.pop_back();

v.size();
v.empty();
v.clear();

v[i];        // 인덱스 접근
v.at(i);     // 범위 체크 O
v.front();
v.back();

v.begin();
v.end();

🔹 deque

양쪽 삽입/삭제 가능

deque<int> dq;
dq.push_front(1);
dq.push_back(2);
dq.pop_front();
dq.pop_back();

특징

  • 앞/뒤 삽입 삭제 O(1)
  • 중간 삽입은 느림

🔹 list

이중 연결 리스트

list<int> l;
l.push_back(1);
l.push_front(2);
l.remove(2);

특징

  • 중간 삽입/삭제 빠름
  • 랜덤 접근 ❌
  • 실무에선 거의 안 씀

2️⃣ 연관 컨테이너 (Associative Containers)

🔹 map

정렬된 key-value ⭐⭐⭐⭐

map<string, int> m;
m["apple"] = 3;
m.insert({"banana", 5});

특징

  • key 자동 정렬 (Red-Black Tree)
  • 탐색/삽입/삭제 O(log N)
m.find("apple");
m.count("apple");
m.erase("apple");

🔹 unordered_map

해시 기반 ⭐⭐⭐⭐⭐

unordered_map<string, int> um;
um["apple"]++;

특징

  • 평균 O(1)
  • 정렬 ❌
  • 실무·코테 최애

🔹 set / unordered_set

중복 없는 집합

set<int> s;
unordered_set<int> us;

3️⃣ 컨테이너 어댑터 (Adapters)

🔹 stack

stack<int> st;
st.push(1);
st.pop();
st.top();

🔹 queue

 
queue<int> q;
q.push(1);
q.pop();
q.front();
q.back();

🔹 priority_queue

힙 (기본: 최대 힙)

priority_queue<int> pq;
priority_queue<int, vector<int>, greater<int>> minpq;

4️⃣ 핵심 알고리즘 함수 (<algorithm>)

⭐⭐⭐⭐⭐ 필수

🔹 정렬

sort(v.begin(), v.end());
sort(v.begin(), v.end(), greater<int>());

🔹 탐색

find(v.begin(), v.end(), x);
binary_search(v.begin(), v.end(), x);
lower_bound(v.begin(), v.end(), x);
upper_bound(v.begin(), v.end(), x);

🔹 최대 / 최소

max(a, b);
min(a, b);

*max_element(v.begin(), v.end());
*min_element(v.begin(), v.end());

🔹 개수 / 검사

count(v.begin(), v.end(), x);
all_of(v.begin(), v.end(), cond);
any_of(v.begin(), v.end(), cond);
none_of(v.begin(), v.end(), cond);

🔹 변경

reverse(v.begin(), v.end());
unique(v.begin(), v.end());
erase(remove(v.begin(), v.end(), x), v.end());

5️⃣ 반복자 & 유틸리티

🔹 iterator

vector<int>::iterator it;
auto it = v.begin();

🔹 pair / tuple

pair<int, int> p = {1, 2};
auto [a, b] = p;

6️⃣ 문자열 (string) 중요 함수

string s = "hello";

s.size();
s.substr(1, 3);
s.find("el");
s.replace(1, 2, "abc");
s += " world";

 

 

 

'내배캠Unreal_TIL > C++' 카테고리의 다른 글

[TIL] 2025-12-22 | C++ 디자인패턴 - 싱글톤, 데코레이터, 옵저버 정리  (0) 2025.12.22
[TIL] 2025-12-19 | 과제4 구현  (0) 2025.12.19
[TIL] 2025-12-18 | 과제3 구현 및 vector 동작 원리 이해  (0) 2025.12.18
[TIL] 2025-12-17 | C++ 예외 처리, 연산자 오버로드, 객체지향적 설계  (0) 2025.12.17
[TIL] 2025-12-16 | C++ STL, vector, map, sort(), find(), Iterator  (2) 2025.12.16
'내배캠Unreal_TIL/C++' 카테고리의 다른 글
  • [TIL] 2025-12-22 | C++ 디자인패턴 - 싱글톤, 데코레이터, 옵저버 정리
  • [TIL] 2025-12-19 | 과제4 구현
  • [TIL] 2025-12-18 | 과제3 구현 및 vector 동작 원리 이해
  • [TIL] 2025-12-17 | C++ 예외 처리, 연산자 오버로드, 객체지향적 설계
윤윤씨
윤윤씨
🎮 내일배움캠프 Unreal 7기
  • 윤윤씨
    컴퓨터온열맛사지
    윤윤씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (62)
      • 내배캠Unreal_TIL (62)
        • C++ (23)
        • UE (31)
        • 팀프로젝트 (7)
      • etc (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
    • Solved.ac
    • YouTube
  • 태그

    ta
    STL
    챌린지
    머티리얼
    오토마타
    gas
    디자인패턴
    스테이트머신
    코드카타
    언리얼과제
    프로그래머스
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
윤윤씨
[C++] STL 총정리
상단으로

티스토리툴바