FILO or LIFO
stack<int> s;
int main() {
s.push(1);
s.push(2);
s.push(3);
if(!s.empty()) {
s.pop();
}
cout << s.size() << "\n";
cout << s.top() << "\n";
}
size() : 원소 개수 리턴empty() : 스택이 비어있으면 true, 아니면 false 리턴top() : 스택의 top 원소 리턴push(element) : 원소 삽입pop() : top 원소 삭제swap(stack1, stack2) : 두 스택의 내용을 바꾸기FIFO
queue<int> q;
int main(void) {
q.push(5);
q.push(2);
q.push(3);
q.pop();
// 먼저 들어온 원소부터 추출
while (!q.empty()) {
cout << q.front() << ' ';
q.pop();
}
}
size() : 원소 개수 리턴empty() : 큐가 비어있으면 true, 아니면 false 리턴front() : 큐의 가장 앞의 원소 리턴back() : 큐의 가장 뒤의 원소 리턴push(element) : 원소 삽입pop() : front 원소 삭제swap(queue1, queue2) : 두 큐의 내용을 바꾸기// max heap
priority_queue <int> pq:
priority_queue ‹int, vector‹int>, less<int>> pq;
// min heap
priority_queue ‹int, vector‹int>, greater<int>> pq;
size() : 원소 개수 리턴empty() : 우선순위 큐가 비어 있으면 true, 아니면 false 리턴top() : 우선순위가 가장 큰 원소 리턴push(element) : 우선 순위에 따라 삽입pop() : 우선순위가 가장 큰 원소 제거