[STL] C++ stack 생성 및 삽입, 삭제





결과

결과





코드

#include <string>
#include <iostream>
#include <stack>
using namespace std;

int main() {
	stack<int> s;

	if (s.empty()) cout << "스택이 비었습니다.\n";

	s.push(4);	// 4
	s.push(3);	// 4 3
	s.push(5);	// 4 3 5
	s.push(1);	// 4 3 5 1
	s.push(6);	// 4 3 5 1 6
	s.push(2);	// 4 3 5 1 6 2
	
	cout << "가장 꼭대기 : " << s.top() << "\n";
	cout << "개수 : " << s.size() << "\n";

	cout << "하나씩 출력 : ";
	while (!s.empty()) {
		cout << s.top() << " ";
		s.pop();
	}
	cout << "\n";

	return 0;
}



Stack : 후입선출(or 선입후출)의 구조로 가장 나중에 들어온 것이 가장 먼저 나간다.

ex) 한줄로만 넣을 수 있는 박스의 물건을 넣는다고 생각하면 된다. 이렇게 된다면 가장 위에 물건을 꺼내야만 그 아래의 있는 물건을 꺼낼 수 있다.




empty() : 스택이 비었는지 검사한다.

- 스택이 비었다면 true를 return 한다.




push() : 데이터를 삽입(push) 한다.




top() : 가장 꼭대기의 값을 리턴한다,

- 가장 꼭대기의 값이므로 pop()했을 때 나오는 값이다.




size() : 스택의 길이를 리턴한다.




pop() : 꼭대기의 값을 삭제(pop) 한다.

- return 형이 void이므로 꼭대기 값을 이용하기 위해서는 pop()하기 전 top()으로 값을 가져와야 한다.


- 스택이 비워져 있을 때 pop()을 실행한다면 오류가 발생한다.







pair을 사용하여서 값 쌍으로 저장하기



링크

[C++/STL] - C++ pair 사용하여 쌍으로 값저장





+ Recent posts