728x90
반응형
C++ STL
Array
고정 길이의 배열
#include <array>
std::array<int, 길이> 변수명 = {초기값};
array.begin() # 첫 원소, iterator와 사용
array.end() # 마지막 다음 원소, iterator와 사용
array.rbegin() # 역순 첫 원소
array.rend() # 역순 마지막 다음 원소
array.front() # 첫 값
array.back() # 마지막 값
array.fill(value) # 모든 값을 value로
array.swap(array2) # 길이가 같으면 서로 원소를 바꿈
array.at(n) # n번째 원소
array.empyt() # 비어있는지 확인
array.size() # 배열의 사이즈
Vector
동적 길이 배열
#include <vector>
std::vector<int> vec;
vec.push_back(value) # 맨 뒤에 원소 추가
vec.insert(vec.begin(), value) # 원하는 위치에 삽입
vec.pop_back() # 마지막 원소 제거
vec.erase(vec.begin()) # 원하는 위치 제거
vec.erase(vec.begin()+n, vec.begin()+m) # 원하는 위치 제거
vec.clear() # 초기화, 길이 0
vec.resize(n) # 길이 n으로 바꿈
vec.size(), vec.empty()
vec.front(), vec.back()
vec.begin(), vec.end()
Stack
Last In First Out
#include <stack>
std::stack<int> st;
st.push(value) # push value
st.pop() # Pop value
st.top() # 상단 원소 값 반환
st.swap(st2) # 스택 내용을 바꿈, 길이는 상관없음
st.size(), st.empty()
Queue
First In First Out
#include <queue>
std::queue<int> Q;
Q.push( value ) # 맨 뒤에 value 추가
Q.pop() # 맨 앞 데이터 삭제
Q.front() # 맨 앞 데이터 값 반환
Q.back() # 맨 뒤 데이터 값 반환
Q.size(), Q.empty(), Q.swap(q2)
Priority Queue
정렬된 큐
#include <queue>
std::priority_queue<int> pq;
pq.push( value ) # value 추가
pq.pop() # 제일 큰 값 제거
pq.top() # 맨 앞 값 반환
Map
중복을 허용하지 않는 Key 와 Value 쌍으로 이루어진 Tree
#include <map>
std::map<int, string> mp;
//key를 기준으로 오름차순 정렬이 된다.
//내림차순으로 하고 싶다면
std::map<int, string, greater<int>> mp;
mp.insert({key, value}) # 원소 추가
mp.erase(key) # 원소 삭제
mp.clear() # 내용을 다 지움 (원소 개수 = 0)
mp.find(key) # 값 반환
mp.count(key) # 원소의 개수
반환 (1 or 0)
mp.begin() mp.end()
mp.empty(), mp.size()
Unordered Map
map보다 더 빠른 탐색
#include <unordered_map>
std::unordered_map<int, int> um;
um.insert({key, value}) # 원소 추가
um.erase() # 원소 삭제
um.empty(), um.size()
um.find(key), um.count(key)
um.clear(), um.begin(), um.end()
Multi Map
중복되는 key가 가능한 map
#include <map>
std::multimap<int, int> mmp;
mmp.insert({key, value}) # 원소 삽입
mmp.erase() # 원소 삭제
mmp.empty(), mmp.size()
mmp.find(key), mmp.count(key)
mmp.clear(), mmp,begin(), mmp.end()
Algorithm
min_element(vector.begin(), vector.end())
# 범위의 가장 작은 원소 리턴
max_element(vector.begin(), vector.end())
# 범위의 가장 큰 원소 리턴
find(vector.begin(), vector.end(), value)
# 범위에서 value위치 리턴
vector.sort()
# 정렬
binary_search(vector.begin(), vector.end(), value)
# 정렬된 컨테이너의 이진탐색 후 값 존재 T/F 반환
728x90
반응형