GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::queue::queue(3) C++ Standard Libary std::queue::queue(3)

std::queue::queue - std::queue::queue


queue() : queue(Container()) { } (1) (since C++11)
explicit queue( const Container& cont = Container() (until C++11)
);
explicit queue( const Container& cont ); (since C++11)
explicit queue( Container&& cont ); (3) (since C++11)
queue( const queue& other ); (4)
queue( queue&& other ); (5) (since C++11)
template< class InputIt > (6) (since C++23)
queue( InputIt first, InputIt last );
template< class Alloc > (7) (since C++11)
explicit queue( const Alloc& alloc );
template< class Alloc > (2) (8) (since C++11)
queue( const Container& cont, const Alloc& alloc );
template< class Alloc > (9) (since C++11)
queue( Container&& cont, const Alloc& alloc );
template< class Alloc > (10) (since C++11)
queue( const queue& other, const Alloc& alloc );
template< class Alloc > (11) (since C++11)
queue( queue&& other, const Alloc& alloc );
template< class InputIt, class Alloc >
queue( InputIt first, InputIt last, const Alloc& (12) (since C++23)
alloc );


Constructs new underlying container of the container adaptor from a variety of data
sources.


1) Default constructor. Value-initializes the container.
2) Copy-constructs the underlying container c with the contents of cont.
This is also the default constructor.
(until C++11)
3) Move-constructs the underlying container c with std::move(cont).
4) Copy constructor. The adaptor is copy-constructed with the contents of other.c.
5) Move constructor. The adaptor is constructed with std::move(other.c).
6) Constructs the underlying container c with the contents of the range [first,
last). This overload participates in overload resolution only if InputIt satisfies
LegacyInputIterator.
7-12) These constructors participate in overload resolution only if
std::uses_allocator<Container, Alloc>::value is true, that is, if the underlying
container is an allocator-aware container (true for all standard library containers
that can be used with queue).
7) Constructs the underlying container using alloc as allocator, as if by c(alloc).
8) Constructs the underlying container with the contents of cont and using alloc as
allocator, as if by c(cont, alloc).
9) Constructs the underlying container with the contents of cont using move
semantics while utilizing alloc as allocator, as if by c(std::move(cont), alloc).
10) Constructs the adaptor with the contents of other.c and using alloc as
allocator, as if by c(other.c, alloc).
11) Constructs the adaptor with the contents of other using move semantics while
utilizing alloc as allocator, as if by c(std::move(other.c), alloc).
12) Constructs the underlying container with the contents of the range [first, last)
using alloc as allocator, as if by c(first, last, alloc). This overload participates
in overload resolution only if InputIt satisfies LegacyInputIterator.


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


-
Alloc must meet the requirements of Allocator.
-
Container must meet the requirements of Container. The constructors taking an
allocator parameter participate in overload resolution only if Container meets the
requirements of AllocatorAwareContainer.
-
InputIt must meet the requirements of LegacyInputIterator.


Same as the corresponding operation on the wrapped container.


Feature-test macro: __cpp_lib_adaptor_iterator_pair_constructor (for overloads (6)
and (12))

// Run this code


#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); // overload (2)
std::cout << c3.size() << '\n';


# ifdef __cpp_lib_adaptor_iterator_pair_constructor
const auto il = {2, 7, 1, 8, 2};
std::queue<int> c4 { il.begin(), il.end() }; // overload (6), C++23
std::cout << c4.size() << '\n';
# endif
}


1
1
5
5


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
P0935R0 C++11 default constructor was explicit made implicit


operator= assigns values to the container adaptor
(public member function)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.