서론
이번에는 스택을 구현하기 귀찮을 때 쓰면 좋은 STL을 다룰 것입니다.
STL은 stack말고 queue나 deque같은 것도 구현되어 있지만, 그것들은 나중에 해당 자료구조를 할 때 같이 다룰 것입니다.
STL은 C++에서만 사용 가능합니다.
http://www.cplusplus.com/reference/stack/stack/ 이 문서도 참고하시면 좋습니다.
사용 방법
일단 stack STL을 쓰기 위해서는
1 |
|
을 써야 합니다.
스택 생성은
1 |
|
이런 식으로 하지만 std::를 붙이기 싫다면
1 |
|
를 추가하시면 됩니다.
int형 스택 s를 만드는 전체 코드입니다.
1 |
|
자주 사용하는 메소드
주로 사용하는 메소드는 5가지 정도입니다.
- .empty() - 스택이 비어있으면 true, 비어있지 않으면 false을 반환합니다.
- .size() - 스택에 있는 데이터의 개수를 반환합니다.
- .top() - 스택의 맨 위에 있는 값(가장 나중에 넣은 값)을 반환합니다.
- .push(data) - 스택에 data를 삽입합니다.
- .pop() - 스택에서 데이터를 제거합니다.
https://www.acmicpc.net/problem/10828 이 문제를 풀어봅시다.
- 먼저 n을 입력받고, 명령어를 n번 입력 받습니다.
- 명령어에 따라 알맞은 행동을 수행합니다.
- 만약 명령어가 push이면 숫자 x를 더 입력 받아 stack.push(x)를 합니다.
- 만약 명령어가 pop이면 stack.top()을 출력한 뒤 stack.pop()을 해줍니다.
- 만약 명령어가 size이면 stack.size()를 출력합니다.
- 만약 명령어가 empty이면 stack.empty()를 출력합니다.
- 만약 명령어가 top이면 stack.top()를 출력합니다.
1 |
|