deque::deque
Construye un deque de un tamaño específico, con elementos de un valor específico, con un asignador específico o como una copia de todo o de parte de otro deque.
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(
initializer_list<value_type> IList,
const Allocator& Al
);
Parámetros
Parámetro |
Descripción |
Al |
La clase de asignador que se usa con este objeto. |
Count |
Número de elementos del deque construido. |
Val |
Valor de los elementos del deque construido. |
Right |
Deque del cual el deque construido va a ser una copia. |
First |
Posición del primer elemento en el intervalo de elementos que se va a copiar. |
Last |
Posición del primer elemento más allá del intervalo de elementos que se va a copiar. |
IList |
initializer_list que se va a copiar. |
Comentarios
Todos los constructores almacenan un objeto de asignador (Al) e inicializan el deque.
Los dos primeros constructores especifican un deque inicial vacío y el segundo especifica también el tipo de asignador (_Al) que se va a usar.
El tercer constructor especifica una repetición de un número especificado (_Count) de elementos del valor predeterminado para la clase Type.
Los constructores cuarto y quinto especifican una repetición de elementos (Count) de valor _Val.
El sexto constructor especifica una copia del deque Right.
Los constructores séptimo y octavo copian el intervalo [First, Last) de un deque.
El séptimo constructor mueve el deque Right.
El octavo constructor copia el contenido de una initializer_list.
Ninguno de los constructores realiza ninguna reasignación provisional.
Ejemplo
/ compile with: /EHsc
#include <deque>
#include <iostream>
#include <forward_list>
int main()
{
using namespace std;
forward_list<int> f1{ 1, 2, 3, 4 };
f1.insert_after(f1.begin(), { 5, 6, 7, 8 });
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());
// Create a deque c8 by copying the contents of an initializer_list
// using brace initialization
deque<int> c8({ 1, 2, 3, 4 });
initializer_list<int> iList{ 5, 6, 7, 8 };
deque<int> c9( iList);
cout << "c1 = ";
for (int i : c1)
cout << i << " ";
cout << endl;
cout << "c2 = ";
for (int i : c2)
cout << i << " ";
cout << endl;
cout << "c3 = ";
for (int i : c3)
cout << i << " ";
cout << endl;
cout << "c4 = ";
for (int i : c4)
cout << i << " ";
cout << endl;
cout << "c5 = ";
for (int i : c5)
cout << i << " ";
cout << endl;
cout << "c6 = ";
for (int i : c6)
cout << i << " ";
cout << endl;
// Move deque c6 to deque c7
deque <int> c7(move(c6));
deque <int>::iterator c7_Iter;
cout << "c7 =";
for (int i : c7)
cout << i << " ";
cout << endl;
cout << "c8 = ";
for (int i : c8)
cout << i << " ";
cout << endl;
cout << "c9 = ";
for (int i : c9)
cout << i << " ";
cout << endl;
int x = 3;
}
// 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( ) );
// Create a deque c8 by copying the contents of an initializer_list
// using brace initialization
deque<int> c8({ 1, 2, 3, 4 });
initializer_list<int> iList{ 5, 6, 7, 8 };
deque<int> c9( iList);
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;
cout << "c8 = ";
for (int i : c8)
cout << i << " ";
cout << endl;
cout << "c9 = ";
or (int i : c9)
cout << i << " ";
cout << endl;
}
Resultados
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
c8 = 1 2 3 4
c9 = 5 6 7 8
Requisitos
Encabezado: <deque>
Espacio de nombres: std