[C++] 스택, 큐, 덱
스택
- 한 쪽 끝에서만 원소를 넣고 빼는 구조
 - LIFO(Last In First Out): 나중에 들어온 것이 먼저 나감
 - 헤더:
 #include<stack>- 선언:
 stack<데이터타입>이름
기본 함수
- stack을 선언했을 때
 
stack <int> s;
- 함수 사용법
 
s.push(a): stack에 a 추가
s.pop(): 제일 마지막에 추가된 원소 제거
s.top(): 제일 마지막에 추가된 원소 반환
s.empty(): stack이 비어있으면 true, 아니면 false 반환
s.size(): stack에 들어있는 원소의 개수 반환
#include<iostream>
#include<stack>
using namespace std;
stack<int>s;
int main(){
    s.push(1);			//s={1}
    s.push(2);			//s={1,2}
    s.push(3);			//s={1,2,3}
    s.pop();			//s={1,2}
    
    cout<<s.top()<<'\n';	//2
    cout<<s.empty()<<'\n';	//0
    cout<<s.size()<<'\n';	//2
    
    return 0;
}
큐
- 한 쪽으로는 원소를 넣고 다른 쪽으로 빼는 구조
 - FIFO(First In First Out): 먼저 들어온 것이 먼저 나감
 - 헤더: #include
 - 선언: queue<데이터타입>이름
 
기본함수
- queue를 선언했을 때
 
queue <int> q;
- 함수 사용법
 
q.push(a): stack에 a 추가
q.pop(): 제일 마지막에 추가된 원소 제거
q.top(): 제일 마지막에 추가된 원소 반환
q.empty(): stack이 비어있으면 true, 아니면 false 반환
q.size(): stack에 들어있는 원소의 개수 반환
#include<iostream>
#include<queue>
using namespace std;
queue<int>q;
int main(){
    q.push(1);			//q={1}
    q.push(2);			//q={1,2}
    q.push(3);			//q={1,2,3}
    q.front();			//1
    q.back();			//3
    q.pop();			//q={2,3}
   
    cout<<q.empty()<<'\n';	//0
    cout<<q.size()<<'\n';	//2
    
    return 0;
}
덱
- 양쪽에서 모두 원소를 넣고 뺄 수 있는 구조
 - 헤더:
 #include<deque>- 선언:
 deque<데이터타입>이름
기본 함수
- 덱을 선언했을 때
 
  deque<int>dq;
- 함수 사용법
 
dq.push_front(a): deque 앞에 a 추가
dq.push_back(a): deque 뒤에 a 추가
dq.pop_front(): deque 앞의 원소 제거
dq.pop_back(): deque 뒤의 원소 제거
dq.front(): 제일 앞의 원소 반환
dq.back(): 제일 뒤의 원소 반환
dq.empty(): deque가 비어있으면 true, 아니면 false 반환
dq.size(): deque에 들어있는 원소의 개수 반환
#include<iostream>
#include<deque>
using namespace std;
deque<int>dq;
int main(){
    dq.push_front(1);		//dq={1}
    dq.push_front(2);		//dq={2,1}
    dq.push_back(3)		//dq={2,1,3}
    dq.front();			//1
    dq.back();			//3
    dq.pop_front()		//dq={1,3}
    dq.pop_back()		//dq={1}
   
    cout<<dq.empty()<<'\n';	//0
    cout<<dq.size()<<'\n';	//1
    
    return 0;
}
                Author And Source
이 문제에 관하여([C++] 스택, 큐, 덱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@songfox00/stack-queue-deque저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)