c++ - stack/queue

2022. 8. 7. 00:20STUDY/C++

반응형

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
반응형

'STUDY > C++' 카테고리의 다른 글

C++ - 수식 함수들  (0) 2022.08.07
C++ - deque  (0) 2022.08.07
C++ - list  (0) 2022.08.06
C++ - vector  (0) 2022.08.06
vector & array  (2) 2022.08.04