Data+

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(56);
  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.

'코딩 > C&C++' 카테고리의 다른 글

22. STL map  (0) 2017.04.20
21. STL hash_map  (0) 2017.04.20
19. STL deque1  (0) 2017.04.18
18. STL vector3  (0) 2017.04.18
17. STL vector2  (0) 2017.04.18

블로그의 정보

Data+

Qerogram

활동하기