STUDY/C++
c++ - stack/queue
뚱냐리
2022. 8. 7. 00:20
반응형
c++ stack의 헤더는, #include <stack> 이다.
stack은 LIFO(Last In First Out) 후입 선출 !
근데 stack 은 코테에서 많이 안쓰는 것 같다.
왜냐면 stack 의 단점이 있기 때문인데, vector처럼 [] 해당 요소 접근이 불가하다는 점 때문인듯.
- stack 선언 : stack<int> stk;
- stack 삽입/삭제 : push(i) , pop(); -> 스택의 pop은 맨 위의 값을 pop한다. 큐의 pop은 맨 앞의 원소를 삭제한다.
- stack의 꼭대기값, 비었는지 확인하는 함수 : top(), empty()
queue 도 쓰는 것 비슷하다. 근데 queue는 확실히 안쓰고, deque를 주로 쓴다고 한다. 왜냐면 보니까 deque()에 왠만한 함수 다 있다 !
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> stk;
for(int i = 0; i < 5; i++) stk.push(i);
int out = stk.top();
cout << "top : " << out << '\n';
stk.pop();
out = stk.top();
cout << "top : " << out << '\n';
while(!stk.empty()) {
cout << stk.top() << " ";
stk.pop();
}
cout << '\n';
return 0;
}
큐의 함수는, stack과 다른건 front(), back() 이 있다. 맨 앞의 원소를 return, 맨 뒤의 원소를 return 하는거다.
728x90
반응형