[C++] STL 큐(Queue), 스택(Stack)
카테고리: Cpp
태그: STL
이 글은 C++ STL 큐(Queue)와 스택(Stack)을 공부하고 정리한 글입니다
큐와 스택
- 큐 : 선입 선출(First-in first-out, FIFO) 자료구조
-
스택 : 후입 선출(Last-in first-out, LIFO) 자료구조
큐
-
선입 선출(First-in first-out, FIFO) 자료구조
코드 예시
#include <queue> int main() { std::queue<std::string> studentNameQueue; studentNameQueue.push("Coco"); studentNameQueue.push("Mocha"); while (!studentNameQueue.empty()) { std::cout << "Waiting student: " << studentNameQueue.front() << std::endl; studentNameQueue.pop(); } return 0; }
push()
void push(const value_type& val);
- queue의 맨 뒤에 새 요소를 삽입한다
studentIDQueue.push(1234); studentNameQueue.push("Lulu"); studentInfoQueue.push(StudentInfo("Coco", 1234));
pop()
void pop();
- 가장 먼저 삽입되었던 요소를 제거한다
std::queue<std::string> studentNameQueue; // "Coco"와 "Mocha"를 넣는다 studentNameQueue.pop(); // studentNameQueue: "Mocha"
front()
value_type& front();
- 가장 먼저 삽입되었던 요소를 참조로 반환한다
std::string front = studentNameQueue.front();
back()
value_type& back();
- 가장 마지막에 삽입되었던 요소를 참조로 반환한다
std::string back = studentNameQueue.back();
size()
size_type size();
- queue에 들어 있는 요소의 수를 반환한다
int size = studentNameQueue.size();
empty()
bool empty();
- queue가 비어 있으면 true를, 그렇지 않으면 false를 반환한다
bool bEmpty = studentNameQueue.empty();
스택
-
후입 선출(Last-in first-out, LIFO) 자료구조
코드 예시
#include <stack> int main() { std::stack<std::string> studentNameStack; studentNameStack.push("Coco"); studentNameStack.push("Mocha"); while (!studentNameStack.empty()) { std::cout << studentNameStack.top() << std::endl; studentNameStack.pop(); } return 0; }
push()
void push(const value_type& val);
- stack의 맨 뒤에 새 요소를 삽입한다
studentIDStack.push(1234); studentNameStack.push("Lulu"); studentInfoStack.push(StudentInfo("Coco", 1234));
pop()
void pop();
- Stack에 가장 마지막에 저장된 요소를 제거한다
std::stack<std::string> studentNameStack; // "Coco"와 "Mocha"를 넣는다 studentNameStack.pop(); // studentNameStack: "Coco"
top()
value_type& top();
- stack에 가장 마지막에 저장된 요소를 참조로 반환한다
std::string top = studentNameStack.top();
size()
size_type size();
- stack에 들어 있는 요소의 수를 반환한다
int size = studentNameStack.size();
empty()
bool empty();
- stack이 비어 있으면 true를, 그렇지 않으면 false를 반환한다
bool bEmpty = studentNameStack.empty();
-
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기