Algorithms/C++ STL
C++ STL::Queue
코밥
2019. 7. 4. 12:21
Queue는 상당히 유용한 자료구조 입니다 ㅋㅋ
BFS, TSP, BACKTRACKING 등 참 많이 쓰여요.
저장한 순서대로 데이터를 사용해야한다면 가장 사용하기 적합한 자료구조입니다.

제가 써본 STL들의 특징이 있는데요.
인자값으로 const 값을 받는다는 것입니다.
Java를 사용해보신분들은 겪어보신적이 있으시겠지만
가끔 의도치않게 레퍼런스 변수가 인자로 넘어가서 프로그램이 꼬이는 경우가 있습니다.
제가 써본 STL들은 값을 복사해가기 때문에 계속 같은 변수를 이용해 push함수를 호출해도 별 무리가 없었네요!
소스코드 신나게 짜놨더니 속에서 꼬여서 전부다 바꿔야한다면.. ㅂㄷㅂㄷ..

이렇게 구조체를 선언하고 구조체를 원소로 갖는 queue를 만들수도 있습니다
★ 자주 사용하는 메서드 ★
push(T val) | 큐 맨 끝부분에 데이터를 삽입하는 함수입니다. |
front() |
큐 제일 앞의 데이터를 반환하는 함수입니다. 반환된 데이터는 큐에서 삭제되지 않음! |
pop() | 큐에서 데이터를 삭제합니다. 아무것도 반환하지 않습니다.(void) |
empty() | 큐의 데이터가 비었으면 true를 데이터가 없으면 false를 반환합니다. |
size() | 큐에 데이터가 없으면 0, 큐의 데이터 개수를 반환합니다. |
back() | 큐 맨 끝부분의 데이터를 반환합니다. |
제일 앞부분에 원소를 추가하는 기능은 deque가 하는데요.
queue 헤더는 priority_queue, deque, queue 등 유용한 자료구조를 많이 갖고있습니다.