deque (STL/CLR)
La clase de plantilla describe un objeto que controla una secuencia de longitud variable de elementos que tienen acceso aleatorio. El contenedor deque
se usa para administrar una secuencia de elementos que se parece a un bloque contiguo de almacenamiento, pero que puede crecer o decrecer al final sin necesidad de copiar ningún elemento restante. Por lo tanto, se puede implementar eficazmente un double-ended queue
. (De ahí el nombre).
En la descripción siguiente, GValue
es igual que Value
a menos que este último sea un tipo ref, en cuyo caso es Value^
.
Sintaxis
template<typename Value>
ref class deque
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::IDeque<GValue>
{ ..... };
Parámetros
GValue
Tipo genérico de un elemento de la secuencia controlada.
Valor
Tipo de un elemento de la secuencia controlada.
Requisitos
Encabezado:< cliext/deque>
Espacio de nombres: cliext
Declaraciones
Definición de tipo | Descripción |
---|---|
deque::const_iterator (STL/CLR) | El tipo de un iterador constante para la secuencia controlada. |
deque::const_reference (STL/CLR) | El tipo de una referencia constante a un elemento. |
deque::const_reverse_iterator (STL/CLR) | El tipo de un iterador invertido constante para la secuencia controlada. |
deque::difference_type (STL/CLR) | El tipo de una distancia con signo entre dos elementos. |
deque::generic_container (STL/CLR) | Tipo de la interfaz genérica para el contenedor. |
deque::generic_iterator (STL/CLR) | Tipo de iterador de la interfaz genérica del contenedor. |
deque::generic_reverse_iterator (STL/CLR) | Tipo de iterador inverso para la interfaz genérica del contenedor. |
deque::generic_value (STL/CLR) | Tipo de elemento para la interfaz genérica del contenedor. |
deque::iterator (STL/CLR) | El tipo de un iterador para la secuencia controlada. |
deque::reference (STL/CLR) | El tipo de una referencia a un elemento. |
deque::reverse_iterator (STL/CLR) | El tipo de un iterador invertido para la secuencia controlada. |
deque::size_type (STL/CLR) | El tipo de una distancia con signo entre dos elementos. |
deque::value_type (STL/CLR) | El tipo de un elemento. |
Función miembro | Descripción |
---|---|
deque::assign (STL/CLR) | Reemplaza todos los elementos. |
deque::at (STL/CLR) | Obtiene acceso a un elemento en una posición especificada. |
deque::back (STL/CLR) | Obtiene acceso al último elemento. |
deque::begin (STL/CLR) | Designa el principio de la secuencia controlada. |
deque::clear (STL/CLR) | Quita todos los elementos. |
deque::deque (STL/CLR) | Construye un objeto contenedor. |
deque::empty (STL/CLR) | Comprueba si no hay ningún elemento presente. |
deque::end (STL/CLR) | Designa el final de la secuencia controlada. |
deque::erase (STL/CLR) | Quita los elementos de las posiciones especificadas. |
deque::front (STL/CLR) | Obtiene acceso al primer elemento. |
deque::insert (STL/CLR) | Agrega elementos en una posición especificada. |
deque::pop_back (STL/CLR) | Quita el último elemento. |
deque::pop_front (STL/CLR) | Quita el primer elemento. |
deque::push_back (STL/CLR) | Agrega un nuevo último elemento. |
deque::push_front (STL/CLR) | Agrega un nuevo primer elemento. |
deque::rbegin (STL/CLR) | Designa el principio de la secuencia controlada inversa. |
deque::rend (STL/CLR) | Designa el final de la secuencia controlada inversa. |
deque::resize (STL/CLR) | Cambia el número de elementos. |
deque::size (STL/CLR) | Cuenta el número de elementos. |
deque::swap (STL/CLR) | Intercambia el contenido de dos contenedores. |
deque::to_array (STL/CLR) | Copia la secuencia controlada en una nueva matriz. |
Propiedad | Descripción |
---|---|
deque::back_item (STL/CLR) | Obtiene acceso al último elemento. |
deque::front_item (STL/CLR) | Obtiene acceso al primer elemento. |
Operator | Descripción |
---|---|
deque::operator!= (STL/CLR) | Determina si dos deque objetos no son iguales. |
deque::operator(STL/CLR) | Obtiene acceso a un elemento en una posición especificada. |
operator< (deque) (STL/CLR) | Determina si un objeto deque es menor que otro objeto deque . |
operator< (deque) (STL/CLR) | Determina si un objeto deque es menor o igual que otro objeto deque . |
operator= (deque) (STL/CLR) | Reemplaza la secuencia controlada. |
operator== (deque) (STL/CLR) | Determina si un objeto deque es igual que otro objeto deque . |
operator> (deque) (STL/CLR) | Determina si un objeto deque es mayor que otro objeto deque . |
operator> (deque) (STL/CLR) | Determina si un objeto deque es mayor o igual que otro objeto deque . |
Interfaces
Interfaz | Descripción |
---|---|
ICloneable | Duplica un objeto. |
IEnumerable | Moverse en secuencia por los elementos. |
ICollection | Mantener un grupo de elementos. |
IEnumerable<T> | Moverse en secuencia por los elementos con tipo. |
ICollection<T> | Mantiene un grupo de elementos con tipo. |
IList<T> | Mantener un grupo ordenado de elementos con tipo. |
<Valor>IDeque | Mantener el contenedor genérico. |
Comentarios
El objeto asigna y libera almacenamiento para la secuencia que controla a través de una matriz almacenada de manipuladores que designan bloques de elementos Value
. La matriz aumenta a petición. El crecimiento se produce de tal manera que el costo de anteponer o anexar un nuevo elemento es constante y ningún elemento restante es perturbado. También se puede quitar un elemento en cualquier extremo en tiempo constante y sin alterar los elementos restantes. Por lo tanto, un deque es un buen candidato para el contenedor subyacente para la cola de la clasee de plantilla (STL/CLR) o la pila de clases de plantilla (STL/CLR).
Un objeto deque
admite iteradores de acceso aleatorio, lo que significa que puede hacer referencia a un elemento directamente dada su posición numérica, contando desde cero para el primer elemento (front), hasta deque::size (STL/CLR)() - 1
para el último elemento (back). También significa que un deque es un buen candidato para el contenedor subyacente para la clase de plantilla priority_queue (STL/CLR).
Un iterador deque almacena un manipulador en su objeto deque asociado, junto con el sesgo del elemento que designa. Solo puede usar iteradores con sus objetos de contenedor asociados. El sesgo de un elemento deque no es necesariamente el mismo que su posición. El primer elemento insertado tiene sesgo cero, el siguiente elemento anexado tiene sesgo 1, pero el siguiente elemento antepuesto tiene sesgo -1.
La inserción o eliminación de elementos en cualquier extremo no modifica el valor de un elemento almacenado en ningún sesgo válido. Sin embargo, insertar o eliminar un elemento interior puede cambiar el valor del elemento almacenado en un sesgo determinado, por lo que el valor designado por un iterador también puede cambiar. (El contenedor quizá tenga que copiar los elementos hacia arriba o hacia abajo para crear un agujero antes de una inserción o para rellenar un agujero después de hacer una eliminación). Sin embargo, un iterador deque sigue siendo válido siempre que su sesgo designe un elemento válido. Además, un iterador válido permanece dereferenciable (se puede usar para tener acceso o modificar el valor del elemento que designa), siempre y cuando su sesgo no sea igual al sesgo del iterador devuelto por end()
.
Borrar o quitar un elemento llama al destructor para su valor almacenado. Al destruir el contenedor, se borran todos los elementos. Por lo tanto, un contenedor cuyo tipo de elemento es una clase de referencia garantiza que ningún elemento sobrevive al contenedor. Sin embargo, tenga en cuenta que un contenedor de manipuladores no destruye sus elementos.
Miembros
deque::assign (STL/CLR)
Reemplaza todos los elementos.
Sintaxis
void assign(size_type count, value_type val);
template<typename InIt>
void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);
Parámetros
count
Número de elementos que se van a insertar.
first
Principio del intervalo que se va a insertar.
last
Fin del intervalo que se va a insertar.
right
Enumeración que se va a insertar.
val
Valor del elemento que se va a insertar.
Comentarios
La primera función miembro reemplaza la secuencia controlada por una repetición de count elementos de valor val. Se usa para rellenar el contenedor con elementos que tienen el mismo valor.
Si InIt
es un tipo entero, la segunda función miembro se comporta igual que assign((size_type)first, (value_type)last)
. En caso contrario, reemplaza la secuencia controlada por la secuencia [first
, last
). Se usa para que la secuencia controlada sea una copia de otra secuencia.
La tercera función miembro reemplaza la secuencia controlada por la secuencia designada por el enumerador derecho. Se usa para convertir la secuencia controlada en una copia de una secuencia descrita por un enumerador.
Ejemplo
// cliext_deque_assign.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// assign a repetition of values
cliext::deque<wchar_t> c2;
c2.assign(6, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an iterator range
c2.assign(c1.begin(), c1.end() - 1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an enumeration
c2.assign( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
x x x x x x
a b
a b c
deque::at (STL/CLR)
Obtiene acceso a un elemento en una posición especificada.
Sintaxis
reference at(size_type pos);
Parámetros
pos
Posición del elemento al que se accederá.
Comentarios
La función miembro devuelve una referencia al elemento de la secuencia controlada en la posición pos. Se usa para leer o escribir un elemento cuya posición se conoce.
Ejemplo
// cliext_deque_at.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using at
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1.at(i));
System::Console::WriteLine();
// change an entry and redisplay
c1.at(1) = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
deque::back (STL/CLR)
Obtiene acceso al último elemento.
Sintaxis
reference back();
Comentarios
La función miembro devuelve una referencia al último elemento de la secuencia controlada, que no debe estar vacío. Se usa para acceder al último elemento, cuando se sabe que existe.
Ejemplo
// cliext_deque_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back() = {0}", c1.back());
// alter last item and reinspect
c1.back() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back() = c
a b x
deque::back_item (STL/CLR)
Obtiene acceso al último elemento.
Sintaxis
property value_type back_item;
Comentarios
La propiedad accede al último elemento de la secuencia controlada, que no debe estar vacío. Se usa para leer o escribir el último elemento, cuando se sabe que existe.
Ejemplo
// cliext_deque_back_item.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back_item = {0}", c1.back_item);
// alter last item and reinspect
c1.back_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back_item = c
a b x
deque::begin (STL/CLR)
Designa el principio de la secuencia controlada.
Sintaxis
iterator begin();
Comentarios
La función miembro devuelve un iterador de acceso aleatorio que designa el primer elemento de la secuencia controlada o apunta inmediatamente después del final de una secuencia vacía. Se usa para obtener un iterador que designe el current
principio de la secuencia controlada, pero su estado puede cambiar si cambia la longitud de la secuencia controlada.
Ejemplo
// cliext_deque_begin.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::deque<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("*begin() = {0}", *it);
System::Console::WriteLine("*++begin() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*begin() = a
*++begin() = b
x y c
deque::clear (STL/CLR)
Quita todos los elementos.
Sintaxis
void clear();
Comentarios
La función miembro llama eficazmente a deque::erase (STL/CLR)(
deque::begin (STL/CLR)(),
deque::end (STL/CLR).())
Se usa para garantizar que la secuencia controlada está vacía.
Ejemplo
// cliext_deque_clear.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
size() = 0
a b
size() = 0
deque::const_iterator (STL/CLR)
El tipo de un iterador constante para la secuencia controlada.
Sintaxis
typedef T2 const_iterator;
Comentarios
El tipo describe un objeto de tipo sin especificar T2
que puede actuar como un iterador constante de acceso aleatorio para la secuencia controlada.
Ejemplo
// cliext_deque_const_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::deque<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
System::Console::Write("{0} ", *cit);
System::Console::WriteLine();
return (0);
}
a b c
deque::const_reference (STL/CLR)
El tipo de una referencia constante a un elemento.
Sintaxis
typedef value_type% const_reference;
Comentarios
El tipo describe una referencia constante a un elemento.
Ejemplo
// cliext_deque_const_reference.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::deque<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
{ // get a const reference to an element
cliext::deque<wchar_t>::const_reference cref = *cit;
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
a b c
deque::const_reverse_iterator (STL/CLR)
El tipo de un iterador invertido constante de la secuencia controlada.
Sintaxis
typedef T4 const_reverse_iterator;
Comentarios
El tipo describe un objeto de tipo sin especificar T4
que puede actuar como un iterador inverso constante de la secuencia controlada.
Ejemplo
// cliext_deque_const_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::deque<wchar_t>::const_reverse_iterator crit = c1.rbegin();
cliext::deque<wchar_t>::const_reverse_iterator crend = c1.rend();
for (; crit != crend; ++crit)
System::Console::Write("{0} ", *crit);
System::Console::WriteLine();
return (0);
}
c b a
deque::deque (STL/CLR)
Construye un objeto contenedor.
Sintaxis
deque();
deque(deque<Value>% right);
deque(deque<Value>^ right);
explicit deque(size_type count);
deque(size_type count, value_type val);
template<typename InIt>
deque(InIt first, InIt last);
deque(System::Collections::Generic::IEnumerable<Value>^ right);
Parámetros
count
Número de elementos que se van a insertar.
first
Principio del intervalo que se va a insertar.
last
Fin del intervalo que se va a insertar.
right
Objeto o intervalo que se va a insertar.
val
Valor del elemento que se va a insertar.
Comentarios
El constructor:
deque();
inicializa la secuencia controlada sin elementos. Se usa para especificar una secuencia controlada inicial vacía.
El constructor:
deque(deque<Value>% right);
inicializa la secuencia controlada por la secuencia [right.begin()
, right.end()
). Se usa para especificar una secuencia controlada inicial que es una copia de la secuencia controlada por el objeto deque right. Para obtener más información sobre los iteradores, consulte deque::begin (STL/CLR) y deque::end (STL/CLR).
El constructor:
deque(deque<Value>^ right);
inicializa la secuencia controlada por la secuencia [right->begin()
, right->end()
). Se usa para especificar una secuencia controlada inicial que es una copia de la secuencia controlada por el objeto deque cuyo manipulador es right.
El constructor:
explicit deque(size_type count);
inicializa la secuencia controlada con count elementos, cada uno con el valor value_type()
. Se usa para rellenar el contenedor con elementos que tienen el mismo valor predeterminado.
El constructor:
deque(size_type count, value_type val);
inicializa la secuencia controlada con count elementos, cada uno con el valor val. Se usa para rellenar el contenedor con elementos que tienen el mismo valor.
El constructor:
template<typename InIt>
deque(InIt first, InIt last);
inicializa la secuencia controlada por la secuencia [first
, last
). Se usa para que la secuencia controlada sea una copia de otra secuencia.
El constructor:
deque(System::Collections::Generic::IEnumerable<Value>^ right);
inicializa la secuencia controlada con la secuencia designada por el enumerador derecho. Se usa para convertir la secuencia controlada en una copia de otra secuencia descrita por un enumerador.
Ejemplo
// cliext_deque_construct.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
// construct an empty container
cliext::deque<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct with a repetition of default values
cliext::deque<wchar_t> c2(3);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// construct with a repetition of values
cliext::deque<wchar_t> c3(6, L'x');
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an iterator range
cliext::deque<wchar_t>::iterator it = c3.end();
cliext::deque<wchar_t> c4(c3.begin(), --it);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an enumeration
cliext::deque<wchar_t> c5( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c3);
for each (wchar_t elem in c5)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
cliext::deque<wchar_t> c7(c3);
for each (wchar_t elem in c7)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying a container handle
cliext::deque<wchar_t> c8(%c3);
for each (wchar_t elem in c8)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0
x x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x
deque::difference_type (STL/CLR)
Tipos de una distancia con signo entre dos elementos.
Sintaxis
typedef int difference_type;
Comentarios
El tipo describe un recuento de elementos con signo.
Ejemplo
// cliext_deque_difference_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::deque<wchar_t>::difference_type diff = 0;
for (cliext::deque<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it) ++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
// compute negative difference
diff = 0;
for (cliext::deque<wchar_t>::iterator it = c1.end();
it != c1.begin(); --it) --diff;
System::Console::WriteLine("begin()-end() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
begin()-end() = -3
deque::empty (STL/CLR)
Comprueba si no hay ningún elemento presente.
Sintaxis
bool empty();
Comentarios
La función miembro devuelve true para una secuencia controlada vacía. Es equivalente a deque::size (STL/CLR)() == 0
. Se usa para comprobar si el deque está vacío.
Ejemplo
// cliext_deque_empty.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
deque::end (STL/CLR)
Designa el final de la secuencia controlada.
Sintaxis
iterator end();
Comentarios
La función miembro devuelve un iterador de acceso aleatorio que apunta inmediatamente después del final de la secuencia controlada. Se usa para obtener un iterador que designe el current
final de la secuencia controlada, pero su estado puede cambiar si cambia la longitud de la secuencia controlada.
Ejemplo
// cliext_deque_end.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last two items
cliext::deque<wchar_t>::iterator it = c1.end();
--it;
System::Console::WriteLine("*-- --end() = {0}", *--it);
System::Console::WriteLine("*--end() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --end() = b
*--end() = c
a x y
deque::erase (STL/CLR)
Quita los elementos de las posiciones especificadas.
Sintaxis
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Parámetros
first
Principio del intervalo que se va a borrar.
last
Fin del intervalo que se va a borrar.
where
Elemento que se va a borrar.
Comentarios
La primera función miembro quita el elemento de la secuencia controlada a la que apunta where. Se usa para quitar un único elemento.
La segunda función miembro quita los elementos de la secuencia controlada en el intervalo [first
, last
). Se usa para quitar cero o más elementos contiguos.
Ambas funciones miembro devuelven un iterador que designa el primer elemento que permanece más allá de los elementos quitados o deque::end (STL/CLR)()
si no existe ese elemento.
Al borrar elementos, el número de copias de elementos es lineal en el número de elementos entre el final de la eliminación y el extremo más cercano de la secuencia. (Al borrar uno o varios elementos al final de la secuencia, no se produce ninguna copia de elementos).
Ejemplo
// cliext_deque_erase.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase an element and reinspect
System::Console::WriteLine("erase(begin()) = {0}",
*c1.erase(c1.begin()));
// add elements and display " b c d e"
c1.push_back(L'd');
c1.push_back(L'e');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase all but end
cliext::deque<wchar_t>::iterator it = c1.end();
System::Console::WriteLine("erase(begin(), end()-1) = {0}",
*c1.erase(c1.begin(), --it));
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
erase(begin()) = b
b c d e
erase(begin(), end()-1) = e
size() = 1
deque::front (STL/CLR)
Obtiene acceso al primer elemento.
Sintaxis
reference front();
Comentarios
La función miembro devuelve una referencia al primer elemento de la secuencia controlada, que no debe estar vacío. Se usa para leer o escribir el primer elemento, cuando se sabe que existe.
Ejemplo
// cliext_deque_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front() = {0}", c1.front());
// alter first item and reinspect
c1.front() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front() = a
x b c
deque::front_item (STL/CLR)
Obtiene acceso al primer elemento.
Sintaxis
property value_type front_item;
Comentarios
La propiedad accede al primer elemento de la secuencia controlada, que no debe estar vacío. Se usa para leer o escribir el primer elemento, cuando se sabe que existe.
Ejemplo
// cliext_deque_front_item.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front_item = {0}", c1.front_item);
// alter first item and reinspect
c1.front_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front_item = a
x b c
deque::generic_container (STL/CLR)
Tipo de la interfaz genérica para el contenedor.
Sintaxis
typedef Microsoft::VisualC::StlClr::
IDeque<generic_value>
generic_container;
Comentarios
El tipo describe la interfaz genérica de esta clase contenedora de plantilla.
Ejemplo
// cliext_deque_generic_container.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->insert(gc1->end(), L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push_back(L'e');
System::Collections::IEnumerator^ enum1 =
gc1->GetEnumerator();
while (enum1->MoveNext())
System::Console::Write("{0} ", enum1->Current);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
deque::generic_iterator (STL/CLR)
Tipo de iterador para usarlo con la interfaz genérica del contenedor.
Sintaxis
typedef Microsoft::VisualC::StlClr::Generic::
ContainerRandomAccessIterator<generic_value> generic_iterator;
Comentarios
El tipo describe un iterador genérico que se puede usar con la interfaz genérica de esta clase de contenedor de plantilla.
Ejemplo
// cliext_deque_generic_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
deque::generic_reverse_iterator (STL/CLR)
Tipo de iterador inverso que se usa con la interfaz genérica del contenedor.
Sintaxis
typedef Microsoft::VisualC::StlClr::Generic::
ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;
Comentarios
El tipo describe un iterador inverso genérico que se puede usar con la interfaz genérica de esta clase de contenedor de plantilla.
Ejemplo
// cliext_deque_generic_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_reverse_iterator gcit = gc1->rbegin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a c c
deque::generic_value (STL/CLR)
Tipo de elemento para usarlo con la interfaz genérica del contenedor.
Sintaxis
typedef GValue generic_value;
Comentarios
El tipo describe un objeto de tipo GValue
que describe el valor del elemento almacenado que se debe usar con la interfaz genérica de esta clase contenedora de plantilla.
Ejemplo
// cliext_deque_generic_value.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
deque::insert (STL/CLR)
Agrega elementos en una posición especificada.
Sintaxis
iterator insert(iterator where, value_type val);
void insert(iterator where, size_type count, value_type val);
template<typename InIt>
void insert(iterator where, InIt first, InIt last);
void insert(iterator where,
System::Collections::Generic::IEnumerable<Value>^ right);
Parámetros
count
Número de elementos que se van a insertar.
first
Principio del intervalo que se va a insertar.
last
Fin del intervalo que se va a insertar.
right
Enumeración que se va a insertar.
val
Valor del elemento que se va a insertar.
where
Lugar del contenedor antes del cual se va a insertar.
Comentarios
Cada una de las funciones miembro inserta, antes del elemento al que apunta where en la secuencia controlada, una secuencia especificada por los operandos restantes.
La primera función miembro inserta un elemento con valor val y devuelve un iterador que designa el elemento recién insertado. Se usa para insertar un único elemento antes de un lugar designado por un iterador.
La segunda función miembro inserta una repetición de count elementos de valor val. Se usa para insertar cero o más elementos contiguos que son todos copias del mismo valor.
Si InIt
es un tipo entero, la tercera función miembro se comporta igual que insert(where, (size_type)first, (value_type)last)
. De lo contrario, inserta la secuencia [first
, last
). Se usa para insertar cero o más elementos contiguos copiados de otra secuencia.
La cuarta función miembro inserta la secuencia que designa el elemento de la derecha. Se usa para insertar una secuencia descrita por un enumerador.
Al insertar un único elemento, el número de copias de elementos es lineal en el número de elementos entre el punto de inserción y el extremo más cercano de la secuencia. (Al insertar uno o varios elementos al final de la secuencia, no se produce ninguna copia de elementos). Si InIt
es un iterador de entrada, la tercera función miembro realiza eficazmente una única inserción para cada elemento de la secuencia. De lo contrario, al insertar N
elementos, el número de copias de elementos es lineal en N
más el número de elementos entre el punto de inserción y el extremo más cercano de la secuencia.
Ejemplo
// cliext_deque_insert.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a single value using iterator
cliext::deque<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("insert(begin()+1, L'x') = {0}",
*c1.insert(++it, L'x'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a repetition of values
cliext::deque<wchar_t> c2;
c2.insert(c2.begin(), 2, L'y');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an iterator range
it = c1.end();
c2.insert(c2.end(), c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an enumeration
c2.insert(c2.begin(), // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
insert(begin()+1, L'x') = x
a x b c
y y
y y a x b
a x b c y y a x b
deque::iterator (STL/CLR)
El tipo de un iterador para la secuencia controlada.
Sintaxis
typedef T1 iterator;
Comentarios
El tipo describe un objeto de tipo sin especificar T1
que puede actuar como un iterador de acceso aleatorio para la secuencia controlada.
Ejemplo
// cliext_deque_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::deque<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
// alter first element and redisplay
it = c1.begin();
*it = L'x';
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
x b c
deque::operator!= (STL/CLR)
Deque no es igual a la comparación.
Sintaxis
template<typename Value>
bool operator!=(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función de operador devuelve !(left == right)
. Se usa para comprobar si left no está ordenada igual que right cuando se comparan dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_ne.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
deque::operator(STL/CLR)
Obtiene acceso a un elemento en una posición especificada.
Sintaxis
reference operator[](size_type pos);
Parámetros
pos
Posición del elemento al que se accederá.
Comentarios
El operador miembro devuelve una referencia al elemento de la posición pos. Se usa para tener acceso a un elemento cuya posición se conoce.
Ejemplo
// cliext_deque_operator_sub.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using subscripting
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
// change an entry and redisplay
c1[1] = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
deque::pop_back (STL/CLR)
Quita el último elemento.
Sintaxis
void pop_back();
Comentarios
La función miembro elimina el último elemento de la secuencia controlada, que no debe estar vacío. Se usa para acortar el deque por un elemento en la parte posterior.
Ejemplo
// cliext_deque_pop_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_back();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b
deque::pop_front (STL/CLR)
Quita el primer elemento.
Sintaxis
void pop_front();
Comentarios
La función miembro elimina el primer elemento de la secuencia controlada, que no debe estar vacío. Se usa para acortar el deque por un elemento en la parte frontal.
Ejemplo
// cliext_deque_pop_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_front();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
b c
deque::push_back (STL/CLR)
Agrega un nuevo último elemento.
Sintaxis
void push_back(value_type val);
Comentarios
La función miembro inserta un elemento con valor val
al final de la secuencia controlada. Se usa para anexar otro elemento al deque.
Ejemplo
// cliext_deque_push_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
deque::push_front (STL/CLR)
Agrega un nuevo primer elemento.
Sintaxis
void push_front(value_type val);
Comentarios
La función miembro inserta un elemento con valor val
al inicio de la secuencia controlada. Se usa para anteponer otro elemento al deque.
Ejemplo
// cliext_deque_push_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_front(L'a');
c1.push_front(L'b');
c1.push_front(L'c');
// display contents " c b a"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
c b a
deque::rbegin (STL/CLR)
Designa el principio de la secuencia controlada inversa.
Sintaxis
reverse_iterator rbegin();
Comentarios
La función miembro devuelve un iterador inverso que designa el último elemento de la secuencia controlada o apunta inmediatamente después del principio de una secuencia vacía. Por lo tanto, designa el beginning
de la secuencia inversa. Se usa para obtener un iterador que designe el current
principio de la secuencia controlada vista en orden inverso, pero su estado puede cambiar si cambia la longitud de la secuencia controlada.
Ejemplo
// cliext_deque_rbegin.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items in reversed sequence
cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
System::Console::WriteLine("*rbegin() = {0}", *rit);
System::Console::WriteLine("*++rbegin() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*rbegin() = c
*++rbegin() = b
a y x
deque::reference (STL/CLR)
El tipo de una referencia a un elemento.
Sintaxis
typedef value_type% reference;
Comentarios
El tipo describe una referencia a un elemento.
Ejemplo
// cliext_deque_reference.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::deque<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
{ // get a reference to an element
cliext::deque<wchar_t>::reference ref = *it;
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
// modify contents " a b c"
for (it = c1.begin(); it != c1.end(); ++it)
{ // get a reference to an element
cliext::deque<wchar_t>::reference ref = *it;
ref += (wchar_t)(L'A' - L'a');
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
return (0);
}
a b c
A B C
deque::rend (STL/CLR)
Designa el final de la secuencia controlada inversa.
Sintaxis
reverse_iterator rend();
Comentarios
La función miembro devuelve un iterador inverso que apunta inmediatamente después del principio de la secuencia controlada. Por lo tanto, designa el end
de la secuencia inversa. Se usa para obtener un iterador que designe el current
final de la secuencia controlada vista en orden inverso, pero su estado puede cambiar si cambia la longitud de la secuencia controlada.
Ejemplo
// cliext_deque_rend.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::deque<wchar_t>::reverse_iterator rit = c1.rend();
--rit;
System::Console::WriteLine("*-- --rend() = {0}", *--rit);
System::Console::WriteLine("*--rend() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --rend() = b
*--rend() = a
y x c
deque::resize (STL/CLR)
Cambia el número de elementos.
Sintaxis
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Parámetros
new_size
Nuevo tamaño de la secuencia controlada.
val
Valor del elemento de relleno.
Comentarios
Las funciones miembro garantizan que deque::size (STL/CLR)()
devuelve en lo sucesivo new_size. Si la secuencia controlada tiene que ser más larga, la primera función miembro anexa elementos con el valor value_type()
, mientras que la segunda función miembro anexa elementos con el valor val. Para que la secuencia controlada sea más corta, ambas funciones miembro borran eficazmente el último elemento deque::size (STL/CLR)() -
new_size
veces. Se usa para asegurarse de que la secuencia controlada tiene el tamaño new_size, ya sea recortando o rellenando la secuencia controlada actual.
Ejemplo
// cliext_deque_resize.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
// construct an empty container and pad with default values
cliext::deque<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
c1.resize(4);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// resize to empty
c1.resize(0);
System::Console::WriteLine("size() = {0}", c1.size());
// resize and pad
c1.resize(5, L'x');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0 0
size() = 0
x x x x x
deque::reverse_iterator (STL/CLR)
El tipo de un iterador invertido para la secuencia controlada.
Sintaxis
typedef T3 reverse_iterator;
Comentarios
El tipo describe un objeto de tipo sin especificar T3
que puede actuar como un iterador inverso de la secuencia controlada.
Ejemplo
// cliext_deque_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
// alter first element and redisplay
rit = c1.rbegin();
*rit = L'x';
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
return (0);
}
c b a
x b a
deque::size (STL/CLR)
Cuenta el número de elementos.
Sintaxis
size_type size();
Comentarios
La función miembro devuelve la longitud de la secuencia controlada. Se usa para determinar el número de elementos que están actualmente en la secuencia controlada. Si todo lo que le interesa es si la secuencia tiene un tamaño distinto de cero, consulte deque::empty (STL/CLR)()
.
Ejemplo
// cliext_deque_size.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0} after clearing", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 0 after clearing
size() = 2 after adding 2
deque::size_type (STL/CLR)
El tipo de una distancia con signo entre dos elementos.
Sintaxis
typedef int size_type;
Comentarios
El tipo describe un recuento de elementos no negativo.
Ejemplo
// cliext_deque_size_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::deque<wchar_t>::size_type diff = c1.end() - c1.begin();
System::Console::WriteLine("end()-begin() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
deque::swap (STL/CLR)
Intercambia el contenido de dos contenedores.
Sintaxis
void swap(deque<Value>% right);
Parámetros
right
Contenedor con el que se va a intercambiar el contenido.
Comentarios
La función miembro intercambia las secuencias controladas entre *this
y right. Lo hace en tiempo constante y no inicia ninguna excepción. Se usa como una manera rápida de intercambiar el contenido de dos contenedores.
Ejemplo
// cliext_deque_swap.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct another container with repetition of values
cliext::deque<wchar_t> c2(5, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// swap and redisplay
c1.swap(c2);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
x x x x x
x x x x x
a b c
deque::to_array (STL/CLR)
Copia la secuencia controlada en una nueva matriz.
Sintaxis
cli::array<Value>^ to_array();
Comentarios
La función miembro devuelve una matriz que contiene la secuencia controlada. Se usa para obtener una copia de la secuencia controlada en forma de matriz.
Ejemplo
// cliext_deque_to_array.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push_back(L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
deque::value_type (STL/CLR)
El tipo de un elemento.
Sintaxis
typedef Value value_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla Value.
Ejemplo
// cliext_deque_value_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using value_type
for (cliext::deque<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it)
{ // store element in value_type object
cliext::deque<wchar_t>::value_type val = *it;
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
operator<
(deque) (STL/CLR)
Deque es menor que la comparación.
Sintaxis
template<typename Value>
bool operator<(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función del operador devuelve true si, en la posición más baja i
para la que !(right[i] < left[i])
, también es true que left[i] < right[i]
. De lo contrario, devuelve left->size() < right->size()
se usa para comprobar si left está ordenada antes que right cuando se comparan los dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_lt.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<=
(deque) (STL/CLR)
Deque menor o igual a la comparación.
Sintaxis
template<typename Value>
bool operator<=(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función de operador devuelve !(right < left)
. Se usa para comprobar si left no está ordenada después de right cuando se comparan los dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_le.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator (deque) (STL/CLR)
Reemplaza la secuencia controlada.
Sintaxis
deque<Value>% operator=(deque<Value>% right);
Parámetros
right
Contenedor que se va a copiar.
Comentarios
El operador miembro copia right en el objeto y, a continuación, devuelve *this
. Se usa para reemplazar la secuencia controlada por una copia de la secuencia controlada del elemento right.
Ejemplo
// cliext_deque_operator_as.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2 = c1;
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
operator== (deque) (STL/CLR)
Deque igual a la comparación.
Sintaxis
template<typename Value>
bool operator==(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función de operador devuelve true solo si las secuencias controladas por izquierda y derecha tienen la misma longitud y, para cada posición i
, left[i] ==
right[i]
. Se usa para comprobar si left está ordenada igual que right cuando se comparan dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_eq.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator>
(deque) (STL/CLR)
Deque es mayor que la comparación.
Sintaxis
template<typename Value>
bool operator>(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función de operador devuelve right
<
left
. Se usa para comprobar si left está ordenada después de right cuando se comparan los dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_gt.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>=
(deque) (STL/CLR)
Deque es mayor o igual que la comparación.
Sintaxis
template<typename Value>
bool operator>=(deque<Value>% left,
deque<Value>% right);
Parámetros
left
Contenedor izquierdo que se va a comparar.
right
Contenedor derecho que se va a comparar.
Comentarios
La función de operador devuelve !(left
<
right)
. Se usa para comprobar si left no está ordenada antes de right cuando se comparan los dos deques elemento por elemento.
Ejemplo
// cliext_deque_operator_ge.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False