Queue#

Source file#

ChaiGO container/adapter/queue

Interface#

template<ContainerElement T, SequenceContainer Container = Deque<T>>
class Queue#

a LIFO (last-in, first-out) data structure.

Any sequence container supporting operations back(), push_back() and pop_back() can be used to instantiate queue. In particular, list and deque can be used.

Difference

Allocator is not required as container’s template parameter.

模板参数
  • T – Type of element. Required to be a complete type.

  • Container – Type of the underlying container to use to store the elements.

Public Types

using value_type = typename Container::value_type#
using reference = typename Container::reference#
using const_reference = typename Container::const_reference#
using size_type = typename Container::size_type#
using container_type = Container#

Public Functions

inline constexpr Queue() noexcept#
inline constexpr Queue(const Container &container) noexcept#
inline constexpr Queue(Container &&container) noexcept#
inline constexpr Queue(const Queue &other) noexcept#
inline constexpr Queue(Queue &&other) noexcept#
template<std::input_iterator InputIt>
inline constexpr Queue(InputIt first, InputIt last) noexcept#
inline constexpr Queue(std::initializer_list<T> ilist) noexcept#
~Queue() = default#
inline constexpr Queue &operator=(const Queue &other) noexcept#
inline constexpr Queue &operator=(Queue &&other) noexcept#
inline constexpr bool empty() const noexcept#
inline constexpr size_type size() const noexcept#
inline constexpr reference front() noexcept#
inline constexpr const_reference front() const noexcept#
inline constexpr reference back() noexcept#
inline constexpr const_reference back() const noexcept#
inline constexpr void push(const value_type &x) noexcept#
inline constexpr void push(value_type &&x) noexcept#
template<class ...Args>
inline constexpr decltype(auto) emplace(Args&&... args) noexcept#
inline constexpr void pop()#
inline constexpr void swap(Queue &s) noexcept(std::is_nothrow_swappable_v<Container>)#