(1) | ||
explicit queue( const Container& cont = Container() ); | (until C++11) | |
explicit queue( const Container& cont ); | (since C++11) | |
explicit queue( Container&& cont = Container() ); | (2) | (since C++11) |
queue( const queue& other ); | (3) | |
queue( queue&& other ); | (4) | (since C++11) |
template< class Alloc > explicit queue( const Alloc& alloc ); | (5) | (since C++11) |
template< class Alloc > queue( const Container& cont, const Alloc& alloc ); | (6) | (since C++11) |
template< class Alloc > queue( Container&& cont, const Alloc& alloc ); | (7) | (since C++11) |
template< class Alloc > queue( const queue& other, const Alloc& alloc ); | (8) | (since C++11) |
template< class Alloc > queue( queue&& other, const Alloc& alloc ); | (9) | (since C++11) |
Constructs new underlying container of the container adaptor from a variety of data sources.
c
with the contents of cont
. This is also the default constructor (until C++11)
c
with std::move(cont)
. This is also the default constructor (since C++11)
other.c
. (implicitly declared)
std::move(other.c)
. (implicitly declared)
std::uses_allocator<container_type, Alloc>::value == true
, that is, if the underlying container is an allocator-aware container (true for all standard library containers).alloc
as allocator, as if by c(alloc)
.cont
and using alloc
as allocator, as if by c(cont, alloc)
.cont
using move semantics while utilising alloc
as allocator, as if by c(std::move(cont), alloc)
.other.c
and using alloc
as allocator, as if by c(other.c, alloc)
.other
using move semantics while utilising alloc
as allocator, as if by c(std::move(other.c), alloc)
.alloc | - | allocator to use for all memory allocations of the underlying container |
other | - | another container adaptor to be used as source to initialize the underlying container |
cont | - | container to be used as source to initialize the underlying container |
first, last | - | range of elements to initialize with |
Type requirements | ||
-Alloc must meet the requirements of Allocator . |
||
-Container must meet the requirements of Container . The constructors (5-10) are only defined if Container meets the requirements of AllocatorAwareContainer |
||
-InputIt must meet the requirements of InputIterator . |
1, 3, 5, 6, 8: linear in cont
or other
.
2, 4, 7, 9: constant.
#include <queue> #include <deque> #include <iostream> int main() { std::queue<int> c1; c1.push(5); std::cout << c1.size() << '\n'; std::queue<int> c2(c1); std::cout << c2.size() << '\n'; std::deque<int> deq {3, 1, 4, 1, 5}; std::queue<int> c3(deq); std::cout << c3.size() << '\n'; }
Output:
1 1 5
assigns values to the container adaptor (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/container/queue/queue