標準ライブラリヘッダ <queue>
提供: cppreference.com
このヘッダはコンテナライブラリの一部です。
インクルード | ||
<initializer_list>(C++11) | ||
クラス | ||
キュー (FIFO データ構造) を提供するためにコンテナを適合させます (クラステンプレート) | ||
優先度付きキューを提供するためにコンテナを適合させます (クラステンプレート) | ||
std::uses_allocator 型特性の特殊化 (関数テンプレート) | ||
std::uses_allocator 型特性の特殊化 (関数テンプレート) | ||
関数 | ||
queue 内の値を辞書的に比較します (関数テンプレート) | ||
std::swap アルゴリズムの特殊化 (関数テンプレート) | ||
std::swap アルゴリズムの特殊化 (関数テンプレート) |
[編集]概要
#include <initializer_list> namespace std {template<class T, class Container = deque<T>>class queue; template<class T, class Container = vector<T>, class Compare = less<typename Container::value_type>>class priority_queue; template<class T, class Container>bool operator==(const queue<T, Container>& x,const queue<T, Container>& y);template<class T, class Container>bool operator!=(const queue<T, Container>& x,const queue<T, Container>& y); template<class T, class Container>bool operator<(const queue<T, Container>& x,const queue<T, Container>& y);template<class T, class Container>bool operator>(const queue<T, Container>& x,const queue<T, Container>& y);template<class T, class Container>bool operator>=(const queue<T, Container>& x,const queue<T, Container>& y);template<class T, class Container>bool operator<=(const queue<T, Container>& x,const queue<T, Container>& y); template<class T, class Container>void swap(queue<T, Container>& x, queue<T, Container>& y)noexcept(noexcept(x.swap(y))); template<class T, class Container, class Compare>void swap(priority_queue<T, Container, Compare>& x, priority_queue<T, Container, Compare>& y)noexcept(noexcept(x.swap(y))); template<class T, class Container, class Alloc>struct uses_allocator<queue<T, Container>, Alloc>: uses_allocator<Container, Alloc>::type{}; }
[編集]クラス std::queue
template<class T, class Container = deque<T>>class queue {public:typedeftypename Container::value_type value_type;typedeftypename Container::reference reference;typedeftypename Container::const_reference const_reference;typedeftypename Container::size_type size_type;typedef Container container_type;protected: Container c;public:explicit queue(const Container&);explicit queue(Container&&= Container());template<class Alloc>explicit queue(const Alloc&);template<class Alloc> queue(const Container&, const Alloc&);template<class Alloc> queue(Container&&, const Alloc&);template<class Alloc> queue(const queue&, const Alloc&);template<class Alloc> queue(queue&&, const Alloc&); bool empty()const{return c.empty();} size_type size()const{return c.size();} reference front(){return c.front();} const_reference front()const{return c.front();} reference back(){return c.back();} const_reference back()const{return c.back();}void push(const value_type& x){ c.push_back(x);}void push(value_type&& x){ c.push_back(std::move(x));}template<class... Args>void emplace(Args&&... args){ c.emplace_back(std::forward<Args>(args)...);}void pop(){ c.pop_front();}void swap(queue& q)noexcept(noexcept(swap(c, q.c))){usingstd::swap; swap(c, q.c);}};
[編集]クラス std::priority_queue
template<class T, class Container = vector<T>, class Compare = less<typename Container::value_type>>class priority_queue {public:typedeftypename Container::value_type value_type;typedeftypename Container::reference reference;typedeftypename Container::const_reference const_reference;typedeftypename Container::size_type size_type;typedef Container container_type;protected: Container c; Compare comp;public: priority_queue(const Compare& x, const Container&);explicit priority_queue(const Compare& x = Compare(), Container&&= Container());template<class InputIterator> priority_queue(InputIterator first, InputIterator last, const Compare& x, const Container&);template<class InputIterator> priority_queue(InputIterator first, InputIterator last, const Compare& x = Compare(), Container&&= Container());template<class Alloc>explicit priority_queue(const Alloc&);template<class Alloc> priority_queue(const Compare&, const Alloc&);template<class Alloc> priority_queue(const Compare&, const Container&, const Alloc&);template<class Alloc> priority_queue(const Compare&, Container&&, const Alloc&);template<class Alloc> priority_queue(const priority_queue&, const Alloc&);template<class Alloc> priority_queue(priority_queue&&, const Alloc&); bool empty()const{return c.empty();} size_type size()const{return c.size();} const_reference top()const{return c.front();}void push(const value_type& x);void push(value_type&& x);template<class... Args>void emplace(Args&&... args);void pop();void swap(priority_queue& q)noexcept(noexcept(swap(c, q.c))&&noexcept(swap(comp, q.comp))){usingstd::swap; swap(c, q.c); swap(comp, q.comp);}};