stack과 같은 기능을 활용해야 하는데, 그 와중에 개별 원소에 접근해야 할때. 그럴땐 deque를 사용하자.

문제를 푸는데 deque를 활용해서 push_front()를 해서 원소들을 넣어두고, 그 원소들을 개별적으로 접근해서 

cout 으로 출력하는 상황에서, stack으로도 front로 넣는다와 같은 개념이니까 stack을 사용하면 되지 않을가 싶어서 사용했는데, 

이런식으로 문제가 발생했다

과거에 stack을 배울때 stack과 queue는 내부에 넣어준 개별 원소의 접근에 원칙적으로(stl stack, stl queue) 할수 없다는것이 떠올랐다. 

직접 구현한 스택과 큐는 배열을 통해서 구현해서 그런식으로 가능은 하지만, stl stack과 stl queue를 사용하면

그렇게 할수가 없다.

 그래서 deque를 사용해서 (재미있게도 stl deque는 개별 원소에 접근할 수 있다) push_front로 넣어서 다시 front에 가까운 순으로 접근하면서 원소를 출력하는데 사용하였다. 

만약 이게 떠오르지 않는다면, vector를 만들어서 거기에 넣고, reverse 함수를 통해서 순서를 완전히 바꿔준뒤에 그뒤에 출력하면 이 문제에서 원하는 결과를 얻을 수 있었다. 

왜 deque를 사용하는지 완전하게 이해하고 사용하도록 하자. 

 

  Comments,     Trackbacks