cpp stack
include <stack>
LIFO로 디자인된 자료구조. push/pop
+ member functions
empty ; 비었는지 테스트
size ; 스택 엘리먼트 개수
top ; 가장 위의 엘리먼트 접근
push ; 삽입. (가장 위에 추가)
emplace(c++11) ; construct & push
pop ; top(가장 위) 엘리먼트를 제거
swap(c++11) ; 다른 스택과 바꿈.
+ex)
std::stack<int> st1 ;
st1.push(1) ;
st1.push(2) ;
st1.push(3) ;
st1.size() // => size=3
st1.top() // => 3
st1.pop() // => size=2
st1.top() // => 2
st1.empty() // => false
while( !st1.empty() ) { // 일반적인 스택 데이터를 전부 하나씩 추출하는 방법.
std::cout << ' ' << st1.top() ; // 최상위 노드 접근.
st1.pop() ; // 최상위 노드 삭제.
}
+ swap ex)
std::stack<int> foo, bar ;
foo.push(10); foo.push(20); foo.push(30) ;
bar.push(11) ; bar.push(22) ;
foo.swap(bar) ; // foo와 bar가 바뀜.
foo.size() ; // 2
bar.size() ; // 3
++ queue
FIFO 방식의 자료구조
include <queue>
+members
empty
size
front ; 가장 앞 노드의 값
back ; 가장 뒤 노드의 값
push ; 노드를 가장 뒤에 추가
emplace (c++11)
pop ; 가장 앞의 노드를 제거
swap (c++11)
ex)
std::queue<int> q1 ;
q1.push(1) ;
q1.push(2) ;
q1.push(3) ;
while( !q1.empty() ) {
std::cout << ' ' << q1.front() ; // 가장 앞 노드값 출력
q1.pop() ; // 가장 앞 노드 제거.
}
'Develop > C&CPP' 카테고리의 다른 글
Preprocessor (0) | 2018.06.20 |
---|---|
deque (0) | 2018.06.13 |
cstring (0) | 2018.06.11 |
thread mutex (0) | 2018.06.10 |
thread (0) | 2018.06.09 |