#include <vector>
vector<int> v; //선언
vector<vector<bool>> v2 = vector<vector<bool>>(m, vector<int>(n, false>)); //2차원 벡터 선언
v.assign(10, 1) // 10개의 원소를 1로 할당
v.assign(tmp.begin(), tmp.emd()) // tmp 원소로 할당
v[0], v.at(0) // 인덱스 접근
v.front(), v.back() // 첫 번째, 마지막 원소 참조
v.push_back(5) // 맨뒤에 5 삽입
v.pop_back() // 마지막 원소 제거
v.begin(), v.end() // iterator에서 사용 [)
v.size() // 원소 갯수 출력
v.capacity() // "할당된" 크기 출력
v.insert(1,10) // 1번째 자리에 10 삽입
v.empty() // v.size()가 0인 경우 true
#include <string>
string str1, str2;
str1 = "str1";
str2 = str1; // deep copy
str1.compare(b); // 0인 경우 두 문자열이 같음
str1.find("st"); // "st"가 발견된 첫 위치 반환, 없는 경우 string::npos
stoi("1") // string to integer
str1.push_back("x") // 마지막에 "x" 추가
str1.pop_back() // 마지막 문자 삭제
str1.length(), str1.size() // 스트링 길이 반환
stoi("1") // string to integer
to_string(1) // integer to string
str1.substr(pos, count) // [pos, pos + count) 만큼 반환, 문자열보다 긴 경우 끝 까지 리턴
str1.front()
str1.back()
#include <algorithm>
vector<int> v; // v값이 채워져 있다고 가정
sort(v.begin(), v.end()) // [ v.begin(), v.end() ) 오름차순으로 정렬, 큌솔트 사용해서 stable 보장 x
sort(v.begin(), v.end(), greater<int>()) // [ v.begin(), v.end() ) 내림차순으로 정렬
sort(v.begin(), v.end(), compare) //bool compare(int a, int b) 커스텀 compare
stable_sort() // sort()와 동일하게 사용, stable이 보장된다. (동일한 정렬 기준을 가진 순서가 정렬 이후에도 유지된다) - 머지솔트 사용해서
find(v.begin(), v.end(), 3) // vector에 3의 위치 찾아서 반환, 없을 시 v.end()
reverse(v.begin(), v.end());
min(1, 2) // 1 반환
max(1, 2) // 2 반환
*max_element(v.begin(), v.end()); // 최대값
*min_element(v.begin(), v.end()); // 최소값
bool next_permutation (v.begin(), v.end());
#include <map>
map<string, int> m; // key : string, value : int 형태로 선언
m.insert({"key", value})
m.insert(make_pair("key", value)}
m["key"] = value // map의 element 추가
m.erase("key") // "key"에 해당하는 원소 삭제
m.clear() // 모든 원소 삭제
m.find("key") // "key"에 해당하는 iterator 반환
m.count("key") // 존재 : 1, 존재 x : 0
m["idx"] // value 반환
m.empty() // 비어있으면 true
m.size() // 원소 개수
// 순회
map<string, int>::iterator it;
for(it = m.begin(); it != m.end(); it++) {
cout<< it->first << ' ' << it->second;
}
#include <queue>
queue<int> q;
q.push(1);
q.pop();
q.front();
q.end();
q.size();
q.empty();
#include <set>
set<int> s;
s.insert(3);
s.empty();
s.size();
s.find(3);
s.clear();
#include <queue>
struct compare {
bool operator()(int a, int b) {
// 비교방식;
}
};
priority_queue<int, vector<int>, less<int> > pq; // Max Heap
priority_queue< int, vector<int>, greater<int>> pq2; // Min Heap
priority_queue< int, vector<int>, compare> pq3; // 커스텀 힙
pq.push(5);
pq.pop();
pq.top();
pq.empty();
pq.size();