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 |