벡터

vector

//벡터 크기
vector.size()

sort(vector.begin(), vector.end(), greater<int>()); //내림 차순
sort(vector.begin(), vector.end(), less<int>()); //오름 차순

//벡터에서 중간 값들 삭제 하는 법
vector<int> vec = {10, 20, 30, 40, 50};
    
// 인덱스 2 (값 30) 삭제
vec.erase(vec.begin() + 2);

// 출력
for (int v : vec) {
  std::cout << v << " ";
}
// 출력: 10 20 40 50

//우선순위 큐
//최대힙
priority_queue<int, vector<int>, less<int>>; //default로 최대힙
//최소힙
priority_queue<int, vector<int>, greater<int>>;

//map
map.insert(make_pair(a,b));
map.find(key 값);
map.lower_bound(key 값); //input 이상의 key 값을 찾아줌

//set
set.insert(element 값);
set.find(element 값);
set.lower_bound(값);

//이상 혹은 초과값 찾기
//lower_bound : 찾고자 하는 key 값 이상인 것들 중 가장 작은 key 값을 찾는다.
//upper_bound : 찾고자 하는 key 값을 초과하는 것들 중 가장 작은 key 값을 찾는다.
lower_bound(arr.begin(), arr.end(), 6) - arr.begin();//vector의 경우

//linked list
list<int> L = { 3, 7 }; // int list 생성 후 3, 7로 초기화!
list<int>::iterator cur = L.begin(); // cur는 3을 가리키고 있다!
L.push_front(1); // { 1, 3, 7 }
L.push_back(10); // { 1, 3, 7, 10 }
L.insert(cur, 5); // cur가 가리키는 곳 앞에 5를 추가! { 1, 5, 3, 7, 10 }
cur++; // cur가 1칸 앞을 가리킨다! cur는 7을 가리킨다!

list<int> L = { 3, 7 }; // int list 생성 후 3, 7로 초기화!
list<int>::iterator cur = L.begin(); // cur는 3을 가리키고 있다!
L.push_front(1); // { 1, 3, 7 }
L.push_back(10); // { 1, 3, 7, 10 }
L.insert(cur, 5); // cur가 가리키는 곳 앞에 5를 추가! { 1, 5, 3, 7, 10 }
cur++; // cur가 1칸 앞을 가리킨다! cur는 7을 가리킨다!
    
L.pop_front(); // { 5, 3, 7, 10 }
L.pop_back(); // { 5, 3, 7 }
cur = L.erase(cur); // cur이 가리키는 값을 제거 후 그 다음 원소의 위치를 반환!