Freigeben über


deque::deque

Erstellt eine Doppelschlange einer bestimmten Größe oder mit Elementen eines bestimmten Werts oder mit einer bestimmten Belegungsfunktion oder als Kopie von alle oder nur einen Teil einer anderen Doppelschlange.

deque( );
explicit deque(
   const Allocator& _Al
);
explicit deque(
   size_type _Count
);
deque(
   size_type _Count,
   const Type& _Val
);
deque(
   size_type _Count,
   const Type& _Val,
   const Allocator& _Al
);
deque(
   const deque& _Right
);
template<class InputIterator>
   deque(
      InputIterator _First,
      InputIterator _Last
   );
template<class InputIterator>
   deque(
      InputIterator _First,
      InputIterator _Last,
      const Allocator& _Al
   );
 deque(
   deque&& _Right
);

Parameter

Parameter

Description

_Al

Die allocator-Klasse, die mit diesem Objekt verwendet werden soll.

_Count

Die Anzahl der Elemente in der erstellten Doppelschlange.

_Val

Der Wert der Elemente in der erstellten Doppelschlange.

_Right

Die Doppelschlange, von der die erstellte Doppelschlange, eine Kopie sein soll.

_First

Die Position des ersten Elements in dem zu kopierenden Elementbereich.

_Last

Die Position des ersten Elements nach dem zu kopierenden Elementbereich.

Hinweise

Alle Konstruktoren speichern ein allocator-Objekt (_Al) und initialisieren die Doppelschlange.

Die ersten beiden Konstruktoren geben eine leere ursprüngliche Doppelschlange an, die zweite, den zu verwendenden Belegungsfunktionstyp (_Al) angibt.

Der dritte Konstruktor gibt eine Wiederholung einer angegebenen Anzahl (_Count) Elemente des Standardwerts für Klasse Typ an.

Die vierten und fünften Konstruktoren geben eine Wiederholung von (_Count) Elementen des Werts _Val an.

Der 6. Konstruktor wird eine Kopie der Doppelschlange _Right an.

Das Siebtel und die beobachten Konstruktoren kopieren den Bereich [_First, _Last) einer Doppelschlange.

Der letzte Konstruktor verschiebt die Doppelschlange _Right.

Keine der Konstruktoren führen alle Zwischenneuzuordnungen aus.

Beispiel

// deque_deque.cpp
// compile with: /EHsc
#include <deque>
#include <iostream>

int main( ) 
{
   using namespace std;
   deque <int>::iterator c1_Iter, c2_Iter, c3_Iter, c4_Iter, c5_Iter, c6_Iter;

   // Create an empty deque c0
   deque <int> c0;

   // Create a deque c1 with 3 elements of default value 0
   deque <int> c1( 3 );

   // Create a deque c2 with 5 elements of value 2
   deque <int> c2( 5, 2 );

   // Create a deque c3 with 3 elements of value 1 and with the 
   // allocator of deque c2
   deque <int> c3( 3, 1, c2.get_allocator( ) );

   // Create a copy, deque c4, of deque c2
   deque <int> c4( c2 );

   // Create a deque c5 by copying the range c4[_First, _Last)
   c4_Iter = c4.begin( );
   c4_Iter++;
   c4_Iter++;
   deque <int> c5( c4.begin( ), c4_Iter );

   // Create a deque c6 by copying the range c4[_First, _Last) and 
   // c2 with the allocator of deque
   c4_Iter = c4.begin( );
   c4_Iter++;
   c4_Iter++;
   c4_Iter++;
   deque <int> c6( c4.begin( ), c4_Iter, c2.get_allocator( ) );

   cout << "c1 = ";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << *c1_Iter << " ";
   cout << endl;
   
   cout << "c2 = ";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << *c2_Iter << " ";
   cout << endl;

   cout << "c3 = ";
   for ( c3_Iter = c3.begin( ); c3_Iter != c3.end( ); c3_Iter++ )
      cout << *c3_Iter << " ";
   cout << endl;

   cout << "c4 = ";
   for ( c4_Iter = c4.begin( ); c4_Iter != c4.end( ); c4_Iter++ )
      cout << *c4_Iter << " ";
   cout << endl;

   cout << "c5 = ";
   for ( c5_Iter = c5.begin( ); c5_Iter != c5.end( ); c5_Iter++ )
      cout << *c5_Iter << " ";
   cout << endl;

   cout << "c6 = ";
   for ( c6_Iter = c6.begin( ); c6_Iter != c6.end( ); c6_Iter++ )
      cout << *c6_Iter << " ";
   cout << endl;

   // Move deque c6 to deque c7
   deque <int> c7( move(c6) );
   deque <int>::iterator c7_Iter,
   
   cout << "c7 =" ;
   for ( c7_Iter = c7.begin( ) ; c7_Iter != c7.end( ) ; c7_Iter++ )
      cout << " " << *c7_Iter;
   cout << endl;
}

Output

c1 = 0 0 0 
c2 = 2 2 2 2 2 
c3 = 1 1 1 
c4 = 2 2 2 2 2 
c5 = 2 2 
c6 = 2 2 2 
c7 = 2 2 2 

Anforderungen

Header: <deque>

Namespace: std

Siehe auch

Referenz

deque Class

Standardvorlagenbibliothek