20. STL deque2
by Qerogram# assign & swap
- assign또한 vector에서의 assign과 동일하다.
- 값을 지우고 다시 넣는다고 생각하면 되겠다.
- deque1.assign(5,6) // 6을 5번 채운다.
- deque2.assign(deque1.begin(), deque1.end()) // deque1의 내용을 복사해서 채운다.
- swap은 값을 바꾼다.(사이즈 달라도 가능)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <iostream> #include <deque> using namespace std; void print(deque<int> deque1) { for(deque<int>::iterator iterPos = deque1.begin(); iterPos != deque1.end(); ++iterPos) { cout << "deque : " << *iterPos << endl; } } int main() { deque<int> deque1; cout << "assign 1" << endl; deque1.assign(5, 6); print(deque1); cout << endl << "assign 2" << endl; deque<int> deque2; deque2.assign(deque1.begin(), deque1.end()); print(deque2); // swap deque<int> deque3; deque3.push_back(10); deque3.push_back(20); deque3.push_back(30); deque3.swap(deque1); cout << endl << "swap" << endl; print(deque1); cout << endl; print(deque3); return 0; } | cs |
* 결과
assign 1
deque : 6
deque : 6
deque : 6
deque : 6
deque : 6
assign 2
deque : 6
deque : 6
deque : 6
deque : 6
deque : 6
swap
deque : 10
deque : 20
deque : 30
deque : 6
deque : 6
deque : 6
deque : 6
deque : 6
* 마지막으로 책에선 또 과제를 내어준다.
1. deque을 이용해 FIFO, LIFO 스택을 구현해라.
2. deque을 사용해서 Undo, Redo를 구현하라.
Undo - deque에 숫자를 저장하고 Undo를 하면 마지막에 넣은 데이터를 뺀다.
Redo - 뺀 데이터를 다시 넣는다.
* 참고 : Thinking About C++ STL Programming.
블로그의 정보
Data+
Qerogram활동하기
Data+Qerogram 님의 블로그입니다.