알고리즘 공부를 할때만 C++을 사용하다 보니 매번 헷갈려서 정리를 시작한다.
주로 Stack 이후에 배우지만, Stack보다 헷갈리는 함수가 많다.
특히, push_back이 아니라 push를 사용한다. (뒤로만 붙이기 때문)
그리고 emplace로 tuple같은 애들을 쉽게 넣을 수도 있더라. 꿀팁!
• front(): 큐에 있는 첫 번째 원소에 대한 참조를 반환한다. 큐가 const이면 const 참조를 반환한다. 큐가 비어 있을 때 반환되는 값은 정의되어 있지 않다.
• back(): 큐에 있는 마지막 원소에 대한 참조를 반환한다. 큐가 const이면 const 참조를 반환한다. 큐가 비어 있을 때 반환되는 값은 정의되어 있지 않다.
• push(const T& obj): obj의 복제본을 큐의 끝에 추가한다. 이 작업은 기반 컨테이너의 push_back() 멤버를 호출해서 수행된다.
• push(T&& obj): 큐의 끝에 obj를 이동해서 추가한다. 이 작업은 기반 컨테이너의 우측값 참조 매개변수 버전의 push_back() 멤버를 호출해서 수행된다.
• pop(): 큐에서 첫 번째 원소를 삭제한다.
• size(): 큐에 있는 원소의 개수를 반환한다.
• empty(): 큐에 원소가 하나도 없으면, 즉 비어 있으면 true를 반환한다.
• emplace(): emplace()에 전달된 인수로 T 생성자를 호출해 컨테이너 내부에 객체를 바로 생성하고 큐의 끝에 추가한다.
• swap(queue<T> &other_q): 현재 큐에 있는 원소들과 인수로 전달된 원소들을 교환한다. 인수는 현재 큐와 같은 타입으로 된 원소들을 담고 있어야 한다. queue 객체에 대해 같은 일을 하는 전역 함수 템플릿 swap() 같은 특수화도 있다.
'C++ STL' 카테고리의 다른 글
[C++][STL] fill, fill_n (0) | 2022.03.01 |
---|---|
[C++][STL] set과 unordered_set의 차이 (0) | 2021.11.11 |
[C++][STL] Hash Set (0) | 2021.10.21 |
[C++][STL] sort (0) | 2021.10.04 |
[C++][STL] tuple, tie (0) | 2021.09.26 |