deque (STL/CLR)
Klasa szablonu opisuje obiekt, który kontroluje różną długość sekwencji elementów, które mają dostęp losowy. Kontener deque
służy do zarządzania sekwencją elementów, które wyglądają jak ciągły blok magazynu, ale które mogą rosnąć lub zmniejszać na końcu bez konieczności kopiowania pozostałych elementów. W ten sposób może skutecznie implementować element double-ended queue
. (Stąd nazwa).
W poniższym GValue
opisie jest taki sam, jak Value
w przypadku, gdy ten ostatni jest typem ref, w takim przypadku jest to Value^
.
Składnia
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>
{ ..... };
Parametry
GValue
Ogólny typ elementu w kontrolowanej sekwencji.
Wartość
Typ elementu w kontrolowanej sekwencji.
Wymagania
Header:<cliext/deque>
Przestrzeń nazw: cliext
Deklaracje
Definicja typu | opis |
---|---|
deque::const_iterator (STL/CLR) | Typ iteratora stałego dla kontrolowanej sekwencji. |
deque::const_reference (STL/CLR) | Typ stałego odwołania do elementu. |
deque::const_reverse_iterator (STL/CLR) | Typ iteratora stałej odwrotnej dla kontrolowanej sekwencji. |
deque::difference_type (STL/CLR) | Typ odległości ze znakiem między dwoma elementami. |
deque::generic_container (STL/CLR) | Typ interfejsu ogólnego dla kontenera. |
deque::generic_iterator (STL/CLR) | Typ iteratora dla interfejsu ogólnego dla kontenera. |
deque::generic_reverse_iterator (STL/CLR) | Typ iteratora odwrotnego dla interfejsu ogólnego dla kontenera. |
deque::generic_value (STL/CLR) | Typ elementu dla interfejsu ogólnego kontenera. |
deque::iterator (STL/CLR) | Typ iteratora dla kontrolowanej sekwencji. |
deque::reference (STL/CLR) | Typ odwołania do elementu. |
deque::reverse_iterator (STL/CLR) | Typ iteratora odwrotnego dla kontrolowanej sekwencji. |
deque::size_type (STL/CLR) | Typ odległości ze znakiem między dwoma elementami. |
deque::value_type (STL/CLR) | Typ elementu. |
Funkcja elementów członkowskich | opis |
---|---|
deque::assign (STL/CLR) | Zastępuje wszystkie elementy. |
deque::at (STL/CLR) | Uzyskuje dostęp do elementu na określonej pozycji. |
deque::back (STL/CLR) | Uzyskuje dostęp do ostatniego elementu. |
deque::begin (STL/CLR) | Określa początek kontrolowanej sekwencji. |
deque::clear (STL/CLR) | Usuwa wszystkie elementy. |
deque::deque (STL/CLR) | Konstruuje obiekt kontenera. |
deque::empty (STL/CLR) | Sprawdza, czy nie ma żadnych elementów. |
deque::end (STL/CLR) | Określa koniec kontrolowanej sekwencji. |
deque::erase (STL/CLR) | Usuwa elementy z określonych pozycji. |
deque::front (STL/CLR) | Uzyskuje dostęp do pierwszego elementu. |
deque::insert (STL/CLR) | Dodaje elementy w określonej pozycji. |
deque::pop_back (STL/CLR) | Usuwa ostatni element. |
deque::pop_front (STL/CLR) | Usuwa pierwszy element. |
deque::push_back (STL/CLR) | Dodaje nowy ostatni element. |
deque::push_front (STL/CLR) | Dodaje nowy pierwszy element. |
deque::rbegin (STL/CLR) | Wyznacza początek odwróconej kontrolowanej sekwencji. |
deque::rend (STL/CLR) | Wyznacza koniec odwróconej kontrolowanej sekwencji. |
deque::resize (STL/CLR) | Zmienia liczbę elementów. |
deque::size (STL/CLR) | Liczy liczbę elementów. |
deque::swap (STL/CLR) | Zamienia zawartości dwóch kontenerów. |
deque::to_array (STL/CLR) | Kopiuje kontrolowaną sekwencję do nowej tablicy. |
Właściwości | opis |
---|---|
deque::back_item (STL/CLR) | Uzyskuje dostęp do ostatniego elementu. |
deque::front_item (STL/CLR) | Uzyskuje dostęp do pierwszego elementu. |
Operator | opis |
---|---|
deque::operator!= (STL/CLR) | Określa, czy dwa deque obiekty nie są równe. |
deque::operator(STL/CLR) | Uzyskuje dostęp do elementu na określonej pozycji. |
operator< (deque) (STL/CLR) | Określa, czy deque obiekt jest mniejszy niż inny deque obiekt. |
operator<= (deque) (STL/CLR) | Określa, czy deque obiekt jest mniejszy lub równy innemu deque obiektowi. |
operator= (deque) (STL/CLR) | Zastępuje kontrolowaną sekwencję. |
operator== (deque) (STL/CLR) | Określa, czy deque obiekt jest równy innemu deque obiektowi. |
operator> (deque) (STL/CLR) | Określa, czy deque obiekt jest większy niż inny deque obiekt. |
operator>= (deque) (STL/CLR) | Określa, czy deque obiekt jest większy lub równy innemu deque obiektowi. |
Interfejsy
Interfejs | opis |
---|---|
ICloneable | Duplikuj obiekt. |
IEnumerable | Sekwencja elementów. |
ICollection | Zachowaj grupę elementów. |
IEnumerable<T> | Sekwencjonowanie przez wpisane elementy. |
ICollection<T> | Zachowaj grupę wpisanych elementów. |
IList<T> | Zachowaj uporządkowaną grupę typowanych elementów. |
Wartość IDeque<> | Obsługa ogólnego kontenera. |
Uwagi
Obiekt przydziela i zwalnia magazyn dla sekwencji, którą kontroluje za pośrednictwem przechowywanej tablicy dojść, które wyznaczają bloki Value
elementów. Tablica rośnie na żądanie. Wzrost występuje w taki sposób, że koszt dołączania lub dołączania nowego elementu jest stały czas, a pozostałe elementy nie są zakłócone. Element można również usunąć na każdym końcu w stałym czasie i bez zakłócania pozostałych elementów. W związku z tym deque jest dobrym kandydatem dla bazowego kontenera dla kolejki klas szablonu (STL/CLR) lub stosu klas szablonu (STL/CLR).
deque
Obiekt obsługuje iteratory dostępu losowego, co oznacza, że można odwołać się bezpośrednio do elementu, biorąc pod uwagę jego położenie liczbowe, licząc od zera dla pierwszego (frontu) elementu, do deque::size (STL/CLR)() - 1
dla ostatniego (tylnego) elementu. Oznacza to również, że deque jest dobrym kandydatem dla kontenera bazowego dla klasy szablonu priority_queue (STL/CLR).
Iterator deque przechowuje uchwyt do skojarzonego obiektu deque wraz z stronniczości elementu, który wyznacza. Iteratory można używać tylko ze skojarzonymi obiektami kontenera. Stronniczość elementu deque nie musi być taka sama jak jego pozycja. Pierwszy wstawiony element ma odchylenie zerowe, następny dołączony element ma stronniczą wartość 1, ale następny element z prepended ma stronniczą wartość -1.
Wstawianie lub wymazywanie elementów na obu stronach nie zmienia wartości elementu przechowywanego w żadnym prawidłowym stronniczości. Jednak wstawianie lub wymazywanie elementu wewnętrznego może jednak zmienić wartość elementu przechowywaną na danej stronniczość, więc wartość wyznaczona przez iterator może również ulec zmianie. (Kontener może wymagać skopiowania elementów w górę lub w dół, aby utworzyć otwór przed wstawianiem lub wypełnieniem otworu po wymazaniu). Niemniej jednak iterator deque pozostaje ważny tak długo, jak jego stronniczość wyznacza prawidłowy element. Ponadto prawidłowy iterator pozostaje wyłuskiwalny — można go użyć do uzyskania dostępu do lub zmiany wartości elementu, którą wyznaczy — o ile jego stronniczość nie jest równa stronniczości iteratora zwróconego przez end()
element .
Wymazywanie lub usuwanie elementu wywołuje destruktor dla jego przechowywanej wartości. Zniszczenie kontenera spowoduje usunięcie wszystkich elementów. W związku z tym kontener, którego typ elementu jest klasą ref, gwarantuje, że żadne elementy nie przeżyją kontenera. Należy jednak pamiętać, że kontener uchwytów nie niszczy jego elementów.
Elementy członkowskie
deque::assign (STL/CLR)
Zastępuje wszystkie elementy.
Składnia
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);
Parametry
count
Liczba elementów do wstawienia.
pierwszy
Początek zakresu do wstawienia.
ostatni
Koniec zakresu do wstawienia.
Prawy
Wyliczenie do wstawienia.
Val
Wartość elementu do wstawienia.
Uwagi
Pierwsza funkcja składowa zastępuje kontrolowaną sekwencję powtórzeniem elementów zliczanych wartości. Służy do wypełniania kontenera elementami o tej samej wartości.
Jeśli InIt
jest typem całkowitym, druga funkcja składowa zachowuje się tak samo jak assign((size_type)first, (value_type)last)
. W przeciwnym razie zastępuje kontrolowaną sekwencję sekwencją [first
, last
). Służy do tworzenia kontrolowanej sekwencji kopii innej sekwencji.
Trzecia funkcja składowa zastępuje kontrolowaną sekwencję sekwencją wyznaczoną przez prawo modułu wyliczającego. Służy do tworzenia kontrolowanej sekwencji kopii sekwencji opisanej przez moduł wyliczający.
Przykład
// 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)
Uzyskuje dostęp do elementu na określonej pozycji.
Składnia
reference at(size_type pos);
Parametry
pozytyw
Pozycja elementu w celu uzyskania dostępu.
Uwagi
Funkcja składowa zwraca odwołanie do elementu kontrolowanej sekwencji w punktach pos położenia. Służy do odczytywania lub pisania elementu, którego pozycja jest wiadoma.
Przykład
// 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)
Uzyskuje dostęp do ostatniego elementu.
Składnia
reference back();
Uwagi
Funkcja składowa zwraca odwołanie do ostatniego elementu kontrolowanej sekwencji, który musi być niepusty. Służy do uzyskiwania dostępu do ostatniego elementu, gdy wiadomo, że istnieje.
Przykład
// 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)
Uzyskuje dostęp do ostatniego elementu.
Składnia
property value_type back_item;
Uwagi
Właściwość uzyskuje dostęp do ostatniego elementu kontrolowanej sekwencji, który musi być niepusty. Służy do odczytywania lub zapisywania ostatniego elementu, gdy wiadomo, że istnieje.
Przykład
// 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)
Określa początek kontrolowanej sekwencji.
Składnia
iterator begin();
Uwagi
Funkcja składowa zwraca iterator dostępu losowego, który wyznacza pierwszy element kontrolowanej sekwencji lub tuż poza końcem pustej sekwencji. Służy do uzyskania iteratora, który wyznacza current
początek kontrolowanej sekwencji, ale jego stan może ulec zmianie, jeśli długość kontrolowanej sekwencji ulegnie zmianie.
Przykład
// 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)
Usuwa wszystkie elementy.
Składnia
void clear();
Uwagi
Funkcja składowa skutecznie wywołuje deque::erase (STL/CLR) deque::begin (STL/CLR)(),
(
deque::end (STL/CLR).())
Służy do zapewnienia, że kontrolowana sekwencja jest pusta.
Przykład
// 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)
Typ iteratora stałego dla kontrolowanej sekwencji.
Składnia
typedef T2 const_iterator;
Uwagi
Typ opisuje obiekt nieokreślonego typu T2
, który może służyć jako stały iterator dostępu losowego dla kontrolowanej sekwencji.
Przykład
// 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)
Typ stałego odwołania do elementu.
Składnia
typedef value_type% const_reference;
Uwagi
Typ opisuje stałe odwołanie do elementu.
Przykład
// 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)
Typ iteratora stałej odwrotnej dla kontrolowanej sekwencji.
Składnia
typedef T4 const_reverse_iterator;
Uwagi
Typ opisuje obiekt nieokreślonego typu T4
, który może służyć jako stały iterator odwrotny dla kontrolowanej sekwencji.
Przykład
// 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)
Konstruuje obiekt kontenera.
Składnia
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);
Parametry
count
Liczba elementów do wstawienia.
pierwszy
Początek zakresu do wstawienia.
ostatni
Koniec zakresu do wstawienia.
Prawy
Obiekt lub zakres do wstawienia.
Val
Wartość elementu do wstawienia.
Uwagi
Konstruktor:
deque();
inicjuje kontrolowaną sekwencję bez elementów. Służy do określania pustej początkowej kontrolowanej sekwencji.
Konstruktor:
deque(deque<Value>% right);
inicjuje kontrolowaną sekwencję za pomocą sekwencji [right.begin()
, right.end()
). Służy do określania początkowej kontrolowanej sekwencji, która jest kopią sekwencji kontrolowanej przez prawo obiektu deque. Aby uzyskać więcej informacji na temat iteratorów, zobacz deque::begin (STL/CLR) i deque::end (STL/CLR).
Konstruktor:
deque(deque<Value>^ right);
inicjuje kontrolowaną sekwencję za pomocą sekwencji [right->begin()
, right->end()
). Służy do określania początkowej kontrolowanej sekwencji, która jest kopią sekwencji kontrolowanej przez obiekt deque, którego uchwyt jest właściwy.
Konstruktor:
explicit deque(size_type count);
inicjuje kontrolowaną sekwencję z elementami zliczanymi z wartością value_type()
. Służy do wypełniania kontenera elementami, które mają wartość domyślną.
Konstruktor:
deque(size_type count, value_type val);
inicjuje kontrolowaną sekwencję z elementami zliczanymi z każdą wartością. Służy do wypełniania kontenera elementami o tej samej wartości.
Konstruktor:
template<typename InIt>
deque(InIt first, InIt last);
inicjuje kontrolowaną sekwencję za pomocą sekwencji [first
, last
). Służy do tworzenia kontrolowanej sekwencji kopii innej sekwencji.
Konstruktor:
deque(System::Collections::Generic::IEnumerable<Value>^ right);
inicjuje kontrolowaną sekwencję z sekwencją wyznaczoną przez prawo modułu wyliczającego. Służy do tworzenia kontrolowanej sekwencji kopii innej sekwencji opisanej przez moduł wyliczający.
Przykład
// 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)
Typy podpisanej odległości między dwoma elementami.
Składnia
typedef int difference_type;
Uwagi
Typ opisuje liczbę podpisanych elementów.
Przykład
// 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)
Sprawdza, czy nie ma żadnych elementów.
Składnia
bool empty();
Uwagi
Funkcja składowa zwraca wartość true dla pustej kontrolowanej sekwencji. Jest to odpowiednik deque::size (STL/CLR)() == 0
. Służy do testowania, czy deque jest puste.
Przykład
// 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)
Określa koniec kontrolowanej sekwencji.
Składnia
iterator end();
Uwagi
Funkcja składowa zwraca iterator dostępu losowego, który wskazuje tuż poza końcem kontrolowanej sekwencji. Służy do uzyskania iteratora, który wyznacza current
koniec kontrolowanej sekwencji, ale jego stan może ulec zmianie, jeśli długość kontrolowanej sekwencji ulegnie zmianie.
Przykład
// 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)
Usuwa elementy z określonych pozycji.
Składnia
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Parametry
pierwszy
Początek zakresu do wymazywania.
ostatni
Koniec zakresu do wymazywania.
gdzie
Element do wymazywania.
Uwagi
Pierwsza funkcja składowa usuwa element kontrolowanej sekwencji wskazywanej przez miejsce. Służy do usuwania pojedynczego elementu.
Druga funkcja składowa usuwa elementy kontrolowanej sekwencji w zakresie [first
, last
). Służy do usuwania zera lub większej liczby ciągłych elementów.
Obie funkcje składowe zwracają iterator, który wyznacza pierwszy element pozostały poza usuniętymi elementami lub deque::end (STL/CLR),()
jeśli taki element nie istnieje.
Podczas wymazywania elementów liczba kopii elementów jest liniowa w liczbie elementów między końcem wymazywania a bliższym końcem sekwencji. (W przypadku wymazywania jednego lub większej liczby elementów na końcu sekwencji nie ma kopii elementów).
Przykład
// 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)
Uzyskuje dostęp do pierwszego elementu.
Składnia
reference front();
Uwagi
Funkcja składowa zwraca odwołanie do pierwszego elementu kontrolowanej sekwencji, który musi być niepusty. Służy do odczytywania lub zapisywania pierwszego elementu, gdy wiadomo, że istnieje.
Przykład
// 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)
Uzyskuje dostęp do pierwszego elementu.
Składnia
property value_type front_item;
Uwagi
Właściwość uzyskuje dostęp do pierwszego elementu kontrolowanej sekwencji, który musi być niepusty. Służy do odczytywania lub zapisywania pierwszego elementu, gdy wiadomo, że istnieje.
Przykład
// 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)
Typ interfejsu ogólnego dla kontenera.
Składnia
typedef Microsoft::VisualC::StlClr::
IDeque<generic_value>
generic_container;
Uwagi
Typ opisuje ogólny interfejs dla tej klasy kontenera szablonu.
Przykład
// 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)
Typ iteratora do użycia z interfejsem ogólnym kontenera.
Składnia
typedef Microsoft::VisualC::StlClr::Generic::
ContainerRandomAccessIterator<generic_value> generic_iterator;
Uwagi
Typ opisuje iterator ogólny, który może być używany z interfejsem ogólnym dla tej klasy kontenera szablonu.
Przykład
// 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)
Typ iteratora odwrotnego do użycia z interfejsem ogólnym kontenera.
Składnia
typedef Microsoft::VisualC::StlClr::Generic::
ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;
Uwagi
Typ opisuje ogólny iterator odwrotny, który może być używany z interfejsem ogólnym dla tej klasy kontenera szablonu.
Przykład
// 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)
Typ elementu do użycia z interfejsem ogólnym kontenera.
Składnia
typedef GValue generic_value;
Uwagi
Typ opisuje obiekt typu GValue
, który opisuje przechowywaną wartość elementu do użycia z interfejsem ogólnym dla tej klasy kontenera szablonu.
Przykład
// 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)
Dodaje elementy w określonej pozycji.
Składnia
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);
Parametry
count
Liczba elementów do wstawienia.
pierwszy
Początek zakresu do wstawienia.
ostatni
Koniec zakresu do wstawienia.
Prawy
Wyliczenie do wstawienia.
Val
Wartość elementu do wstawienia.
gdzie
Gdzie w kontenerze do wstawienia przed.
Uwagi
Każda z funkcji składowych wstawia element przed elementem wskazującym , gdzie w kontrolowanej sekwencji, sekwencja określona przez pozostałe operandy.
Pierwsza funkcja składowa wstawia element z wartością val i zwraca iterator, który wyznacza nowo wstawiony element. Służy do wstawiania pojedynczego elementu przed miejscem wyznaczonym przez iterator.
Druga funkcja składowa wstawia powtórzenie elementów zliczania wartości. Służy do wstawiania zera lub większej liczby ciągłych elementów, które są wszystkimi kopiami tej samej wartości.
Jeśli InIt
jest typem całkowitym, trzecia funkcja składowa zachowuje się tak samo jak insert(where, (size_type)first, (value_type)last)
. W przeciwnym razie wstawia sekwencję [first
, last
). Służy do wstawiania zera lub większej liczby ciągłych elementów skopiowanych z innej sekwencji.
Czwarta funkcja składowa wstawia sekwencję wyznaczoną po prawej stronie. Służy do wstawiania sekwencji opisanej przez moduł wyliczający.
Podczas wstawiania pojedynczego elementu liczba kopii elementów jest liniowa w liczbie elementów między punktem wstawiania a bliższym końcem sekwencji. (Podczas wstawiania co najmniej jednego elementu na końcu sekwencji nie ma kopii elementów). Jeśli InIt
jest iteratorem wejściowym, trzecia funkcja składowa skutecznie wykonuje pojedynczą wstawienie dla każdego elementu w sekwencji. W przeciwnym razie podczas wstawiania N
elementów liczba kopii elementów jest liniowa N
i liczba elementów między punktem wstawiania a bliższym końcem sekwencji.
Przykład
// 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)
Typ iteratora dla kontrolowanej sekwencji.
Składnia
typedef T1 iterator;
Uwagi
Typ opisuje obiekt nieokreślonego typu T1
, który może służyć jako iterator dostępu losowego dla kontrolowanej sekwencji.
Przykład
// 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 nie jest równe porównanie.
Składnia
template<typename Value>
bool operator!=(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca !(left == right)
wartość . Służy do testowania, czy lewo nie jest uporządkowane tak samo jak w prawo , gdy dwa deques są porównywane element według elementu.
Przykład
// 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)
Uzyskuje dostęp do elementu na określonej pozycji.
Składnia
reference operator[](size_type pos);
Parametry
pozytyw
Pozycja elementu w celu uzyskania dostępu.
Uwagi
Operator elementu członkowskiego zwraca odwołanie do elementu w pozycji pos. Służy do uzyskiwania dostępu do elementu, którego położenie znasz.
Przykład
// 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)
Usuwa ostatni element.
Składnia
void pop_back();
Uwagi
Funkcja składowa usuwa ostatni element kontrolowanej sekwencji, który musi być niepusty. Służy do skrócenia zapytania o jeden element z tyłu.
Przykład
// 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)
Usuwa pierwszy element.
Składnia
void pop_front();
Uwagi
Funkcja składowa usuwa pierwszy element kontrolowanej sekwencji, który musi być niepusty. Służy do skrócenia kolejki przez jeden element z przodu.
Przykład
// 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)
Dodaje nowy ostatni element.
Składnia
void push_back(value_type val);
Uwagi
Funkcja składowa wstawia element z wartością val
na końcu kontrolowanej sekwencji. Służy do dołączania innego elementu do deque.
Przykład
// 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)
Dodaje nowy pierwszy element.
Składnia
void push_front(value_type val);
Uwagi
Funkcja składowa wstawia element z wartością val
na początku kontrolowanej sekwencji. Służy do poprzedzania innego elementu do deque.
Przykład
// 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)
Wyznacza początek odwróconej kontrolowanej sekwencji.
Składnia
reverse_iterator rbegin();
Uwagi
Funkcja składowa zwraca iterator odwrotny, który wyznacza ostatni element kontrolowanej sekwencji lub tuż poza początkiem pustej sekwencji. W związku z tym wyznacza beginning
sekwencję odwrotną. Służy do uzyskania iteratora, który wyznacza current
początek kontrolowanej sekwencji widocznej w odwrotnej kolejności, ale jego stan może ulec zmianie, jeśli długość kontrolowanej sekwencji ulegnie zmianie.
Przykład
// 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)
Typ odwołania do elementu.
Składnia
typedef value_type% reference;
Uwagi
Typ opisuje odwołanie do elementu.
Przykład
// 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)
Wyznacza koniec odwróconej kontrolowanej sekwencji.
Składnia
reverse_iterator rend();
Uwagi
Funkcja składowa zwraca iterator odwrotny, który wskazuje tuż poza początkiem kontrolowanej sekwencji. W związku z tym wyznacza end
sekwencję odwrotną. Służy do uzyskania iteratora, który wyznacza current
koniec kontrolowanej sekwencji widocznej w odwrotnej kolejności, ale jego stan może ulec zmianie, jeśli długość kontrolowanej sekwencji ulegnie zmianie.
Przykład
// 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)
Zmienia liczbę elementów.
Składnia
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Parametry
new_size
Nowy rozmiar kontrolowanej sekwencji.
Val
Wartość elementu dopełniania.
Uwagi
Funkcje składowe zapewniają, że funkcja deque::size (STL/CLR)()
w związku z tym zwraca new_size. Jeśli musi ona wydłużyć kontrolowaną sekwencję, pierwsza funkcja składowa dołącza elementy z wartością , podczas gdy druga funkcja składowa dołącza elementy z wartością value_type()
val. Aby skrócić kontrolowaną sekwencję, oba funkcje składowe skutecznie usuwają ostatni czas deque::size (STL/CLR).() -
new_size
Służy do zapewnienia, że kontrolowana sekwencja ma rozmiar new_size, przycinając lub dopełniając bieżącą kontrolowaną sekwencję.
Przykład
// 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)
Typ iteratora odwrotnego dla kontrolowanej sekwencji.
Składnia
typedef T3 reverse_iterator;
Uwagi
Typ opisuje obiekt nieokreślonego typu T3
, który może służyć jako iterator odwrotny dla kontrolowanej sekwencji.
Przykład
// 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)
Liczy liczbę elementów.
Składnia
size_type size();
Uwagi
Funkcja składowa zwraca długość kontrolowanej sekwencji. Służy do określania liczby elementów aktualnie w kontrolowanej sekwencji. Jeśli chodzi o to, czy sekwencja ma rozmiar niezerowy, zobacz deque::empty (STL/CLR)()
.
Przykład
// 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)
Typ podpisanej odległości między dwoma elementami.
Składnia
typedef int size_type;
Uwagi
Typ opisuje nieujemną liczbę elementów.
Przykład
// 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)
Zamienia zawartości dwóch kontenerów.
Składnia
void swap(deque<Value>% right);
Parametry
Prawy
Kontener do zamiany zawartości na.
Uwagi
Funkcja składowa zamienia kontrolowane sekwencje między *this
i po prawej stronie. Robi to w stałym czasie i nie zgłasza żadnych wyjątków. Służy ona jako szybki sposób wymiany zawartości dwóch kontenerów.
Przykład
// 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)
Kopiuje kontrolowaną sekwencję do nowej tablicy.
Składnia
cli::array<Value>^ to_array();
Uwagi
Funkcja składowa zwraca tablicę zawierającą kontrolowaną sekwencję. Służy do uzyskiwania kopii kontrolowanej sekwencji w postaci tablicy.
Przykład
// 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)
Typ elementu.
Składnia
typedef Value value_type;
Uwagi
Typ jest synonimem wartości parametru szablonu.
Przykład
// 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 mniej niż porównanie.
Składnia
template<typename Value>
bool operator<(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca wartość true, jeśli dla najniższej pozycji i
, dla której !(right[i] < left[i])
jest również prawdziwe, że left[i] < right[i]
. W przeciwnym razie zwraca left->size() < right->size()
wartość Użyto go do sprawdzenia, czy lewa jest uporządkowana przed prawej, gdy dwa deques są porównywane element według elementu.
Przykład
// 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 mniejsze niż lub równe porównanie.
Składnia
template<typename Value>
bool operator<=(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca !(right < left)
wartość . Służy do testowania, czy lewo nie jest uporządkowane po prawej stronie , gdy dwa deques są porównywane element według elementu.
Przykład
// 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)
Zastępuje kontrolowaną sekwencję.
Składnia
deque<Value>% operator=(deque<Value>% right);
Parametry
Prawy
Kontener do skopiowania.
Uwagi
Operator elementu członkowskiego kopiuje prawo do obiektu, a następnie zwraca wartość *this
. Służy do zastępowania kontrolowanej sekwencji kopią kontrolowanej sekwencji po prawej stronie.
Przykład
// 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 równe porównanie.
Składnia
template<typename Value>
bool operator==(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca wartość true tylko wtedy, gdy sekwencje kontrolowane przez lewą i prawą mają taką samą długość, a dla każdej pozycji i
, left[i] ==
right[i]
. Służy do testowania, czy lewo jest uporządkowane tak samo jak w prawo , gdy dwa deques są porównywane element według elementu.
Przykład
// 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 większe niż porównanie.
Składnia
template<typename Value>
bool operator>(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca right
<
left
wartość . Służy do testowania, czy lewo jest uporządkowane po prawej stronie , gdy dwa deques są porównywane element według elementu.
Przykład
// 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 większe niż lub równe porównanie.
Składnia
template<typename Value>
bool operator>=(deque<Value>% left,
deque<Value>% right);
Parametry
Lewy
Pozostaw kontener do porównania.
Prawy
Odpowiedni kontener do porównania.
Uwagi
Funkcja operatora zwraca !(left
<
right)
wartość . Służy do testowania, czy lewo nie jest uporządkowane przed prawej, gdy dwa deques są porównywane element według elementu.
Przykład
// 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