-
[C/C++] STL Stack, Queue 사용법프로그래밍/C,C++ 2020. 9. 22. 15:49
1. 스택(Stack)
선입후출, FILO(First In Last Out)
DFS에서 많이 사용됨(실행순서를 기록해야할 때 등)
/* STL Stack 사용법 */ #include <stdio.h> #include <stack> // 반드시 선언 using namespace std; int main(void){ stack<int> S; // 스택 선언 S.push(10); // 스택 값 push S.push(-3); S.push(15); printf("%d\n",S.top()); // 스택 맨 위의 값 리턴 : 15 printf("%d\n",S.size()); // 스택의 크기(원소의 개수) 리턴 while(!S.empty()) { // 스택이 비어있는지 확인 S.pop(); // 스택 값 pop } }
※ Stack이 비어있는데 top() 함수를 사용하면 런타임 에러가 발생할 수 있다.
2. 큐(Queue)
선입선출, FIFO(First In First Out)
BFS에서 많이 사용됨(최소시간, 최단거리 등)
/* STL Queue 사용법 */ #include <stdio.h> #include <queue> // 반드시 선언 using namespace std; int main(void){ queue<int> Q; // 큐 선언 Q.push(23); // 큐 값 push. Q.push(0); Q.push(-11); Q.push(4); printf("%d\n",Q.front()); // 큐에 가장 먼저 들어간 원소 리턴 : 23 printf("%d\n",Q.back()); // 큐에 가장 늦게 들어간 원소 리턴 : 4 Q.pop(); // 큐 값 pop : 4 printf("%d\n",Q.size()); // 큐의 사이즈(원소의 개수) 리턴 : 3 while(!Q.empty()) { // 큐가 비어있는지 확인 Q.pop(); } }
※ Queue가 비어있는데 front()나 back() 함수를 사용하면 런타임 에러가 발생할 수 있다.
'프로그래밍 > C,C++' 카테고리의 다른 글
[C/C++] StringStream 사용법 (문자열 나누기) (0) 2020.11.14 [C/C++] STL Map, Set, Multiset 사용법 (0) 2020.09.22 [C/C++] map 자료구조를 이용한 문자열 문제 해결 (0) 2020.09.02 [C/C++] STL Vector 사용법 (0) 2020.05.08 [C/C++] String 함수 정리 (0) 2020.05.07