반응형
스택(Stack)이란?
스택(Stack)은 데이터를 저장하기 위해 사용되는 연결 리스트와 유사한 간단한 데이터 구조입니다. 스택은 접시를 쌓는 것과 비슷하게 접시를 쌓은 후 맨 위의 접시부터 사용하며, 가장 처음 놓인 접시가 가장 마지막에 사용됩니다.
- 스택의 삽입과 삭제는 한쪽 끝(맨 뒤, top)에서 이루어진다.
- 제일 마지막에 추가된 항목이 제일 먼저 삭제된다.
- 후입 선출(LIFO) 혹은 선입 후출(FILO) 리스트라고 불린다.
스택의 멤버 함수
-
s.top() : s에 가장 나중에 들어간 원소 리턴
-
s.push(x) : s의 맨 뒤에 x 원소 추가
-
s.pop() : s에 가장 나중에 들어간 원소 제거
-
s.size() : s의 사이즈(원소의 개수) 리턴
-
s.empty() : s의 사이즈(원소의 개수)가 0인지 아닌지 확인 (s가 비어있다면 1, 아니라면 0을 리턴)
예제 코드
#include<iostream>
#include<stack>
using namespace std;
int x;
stack<int> s;
int main()
{
s.push(1); // 1
s.push(2); // 1 2
s.push(3); // 1 2 3
s.push(4); // 1 2 3 4
s.push(5); // 1 2 3 4 5
cout << "\n1~5까지 push 후\n";
cout << "empty여부 : " << s.empty() << '\n';
cout << "사이즈 : " << s.size() << '\n';
cout << "top : " << s.top() << '\n';
s.pop(); // 1 2 3 4
s.pop(); // 1 2 3
s.pop(); // 1 2
s.push(6); // 1 2 6
cout << "\npop() 3번 후 push(6)\n";
cout << "empty여부 : " << s.empty() << '\n';
cout << "사이즈 : " << s.size() << '\n';
cout << "top : " << s.top() << '\n';
}
실행결과
Stack의 경우 iterator가 존재하지 않으며 find함수를 사용할 수 없기 때문에 Verctor처럼 index를 통해 접근 혹은 탐색이 불가능하다는 점에 유의하세요.
반응형
'🟦C++' 카테고리의 다른 글
[C++] STL Vector 벡터 사용법과 예제코드 (0) | 2020.12.08 |
---|---|
[C++] STL Deque 덱 사용법과 예제코드 (0) | 2020.12.08 |
[C++] STL Queue 큐 사용법과 예제코드 (0) | 2020.12.07 |
[C/C++] 2차원 배열 정렬하는 방법 (vector) (1) | 2020.11.28 |
[C/C++] STL sort 정렬 함수 (오름차순, 내림차순) 예제코드 (0) | 2020.11.22 |