◐ Shell
clean mode source ↗

std::queue::queue – cppreference.com

Z cppreference.com

<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>

(1)

explicit queue( const Container& cont = Container() );

(do C++11)

explicit queue( const Container& cont );

(od C++11)

explicit queue( Container&& cont = Container() );

(2) (od C++11)

queue( const queue& other );

(3)

queue( queue&& other );

(4) (od C++11)

template< class Alloc > explicit queue( const Alloc& alloc );

(5) (od C++11)

template< class Alloc > queue( const Container& cont, const Alloc& alloc );

(6) (od C++11)

template< class Alloc > queue( Container&& cont, const Alloc& alloc );

(7) (od C++11)

template< class Alloc > queue( const queue& other, const Alloc& alloc );

(8) (od C++11)

template< class Alloc > queue( queue&& other, const Alloc& alloc );

(9) (od C++11)

Konstruuje nowy kontener opakowywany przez ten adapter z różnych źródeł danych, opcjonalnie wykorzystując dostarczony przez użytkownika alokator alloc.

1) Konstruuje opakowywany kontener

c

poprzez skopiowanie

cont

. Jest to również konstruktor domyślny. (do C++11)

2) Konstruuje opakowywany kontener

c

poprzez przeniesienie std::move(cont). Jest to również konstruktor domyślny. (od C++11)

3) Konstruktor kopiujący. Adapter jest konstruowany poprzez skopiowanie other.c. (niejawnie zadeklarowany)

4) Konstruktor przenoszący. Adapter jest konstruowany poprzez przeniesienie std::move(other.c). (niejawnie zadeklarowany)

5-9) Następujące konstruktory są zdefiniowane tylko wtegy, gdy std::uses_allocator<container_type, Alloc>::value == true, to znaczy, gdy opakowywany kontener jest "allocator-aware" (wszystkie kontenery biblioteki standardowej spełniają to założenie).

5) Konstruuje opakowywany kontener wykorzystując

alloc

jako alokator, tak jak przy wywołaniu c(alloc).

6) Konstruuje opakowywany kontener wykorzystując zawartość

cont

i używając

alloc

jako alokatora, tak jak przy wywołaniu c(cont, alloc).

7) Konstruuje opakowywany kontener przenosząc zawartość

cont

i używając

alloc

jako alokatora, tak jak przy wywołaniu c(std::move(cont), alloc).

8) Konstruuje adapter wykorzystując zawartość

other.c

i używając

alloc

jako alokatora, tak jak przy wywołaniu c(other.c, alloc).

9) Konstruuje adapter przenosząc zawartość

other

i używając

alloc

jako alokatora, tak jak przy wywołaniu c(std::move(other.c), alloc).

Parametry

alloc - alokator używany do wszystkich alokacji pamięci wykonywanych przez opakowywany kontener
other - inny adapter, wykorzystywany jako źródło, z którego inicjalizowany jest opakowywany kontener
cont - inny kontener, wykorzystywany jako źródło, którym inicjalizowany jest opakowywany kontener
first, last - przedział, z którego zostają skopiowane elementy
Wymagania względem typów
-Alloc musi spełniać wymagania Alokator.
-Container musi spełniać wymagania Container . Konstruktory (5-10) są definiowane, jeśli Container spełnia wymagania AllocatorAwareContainer
-InputIt musi spełniać wymagania InputIterator.

Złożoność

1, 3, 5, 6, 8: liniowa względem rozmiaru cont lub other

2, 4, 7, 9: stała

Przykład

#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';
}

Wynik:

Zobacz także

przypisuje wartości do adaptora kontenera
(publiczna metoda) [edit]