Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Mallklassen beskriver ett objekt som styr en sekvens med varierande längd av element som har slumpmässig åtkomst. Du använder containern deque
för att hantera en sekvens med element som ser ut som ett sammanhängande lagringsblock, men som kan växa eller krympa i båda änderna utan att behöva kopiera några återstående element. Därför kan den effektivt implementera en double-ended queue
. (Därav namnet.)
I beskrivningen nedan är GValue
samma som Value
om inte det senare är en referenstyp, i vilket fall det är Value^
.
Syntax
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>
{ ..... };
Parametrar
GValue
Den generiska typen av ett element i den kontrollerade sekvensen.
Värde
Typen av ett element i den kontrollerade sekvensen.
Krav
rubrik:<cliext/deque>
namnområde: cliext
Deklarationer
Typdefinition | Beskrivning |
---|---|
deque::const_iterator (STL/CLR) | Typen av en konstant iterator för den kontrollerade sekvensen. |
deque::const_reference (STL/CLR) | Typen av en konstant referens till ett element. |
deque::const_reverse_iterator (STL/CLR) | Typen av en konstant omvänd iterator för den kontrollerade sekvensen. |
deque::d ifference_type (STL/CLR) | Typen av ett signerat avstånd mellan två element. |
deque::generic_container (STL/CLR) | Typen av det generiska gränssnittet för containern. |
deque::generic_iterator (STL/CLR) | Typen av iterator för det generiska gränssnittet för containern. |
deque::generic_reverse_iterator (STL/CLR) | Typen av omvänd iterator för det generiska gränssnittet för containern. |
deque::generic_value (STL/CLR) | Typ av element för det generiska gränssnittet för containern. |
deque::iterator (STL/CLR) | Typ av iterator för den kontrollerade sekvensen. |
deque::reference (STL/CLR) | Typen av referens till ett element. |
deque::reverse_iterator (STL/CLR) | Typen av omvänd iterator för den kontrollerade sekvensen. |
deque::size_type (STL/CLR) | Typen av ett signerat avstånd mellan två element. |
deque::value_type (STL/CLR) | Typ av element. |
Medlemsfunktion | Beskrivning |
---|---|
deque::assign (STL/CLR) | Ersätter alla element. |
deque::at (STL/CLR) | Öppnar ett element på en angiven position. |
deque::back (STL/CLR) | Öppnar det sista elementet. |
deque::begin (STL/CLR) | Anger början av den kontrollerade sekvensen. |
deque::clear (STL/CLR) | Tar bort alla element. |
deque::d eque (STL/CLR) | Skapar ett containerobjekt. |
deque::empty (STL/CLR) | Testar om det inte finns några element. |
deque::end (STL/CLR) | Anger slutet på den kontrollerade sekvensen. |
deque::erase (STL/CLR) | Tar bort element vid angivna positioner. |
deque::front (STL/CLR) | Öppnar det första elementet. |
deque::insert (STL/CLR) | Lägger till element på en angiven position. |
deque::p op_back (STL/CLR) | Tar bort det sista elementet. |
deque::p op_front (STL/CLR) | Tar bort det första elementet. |
deque::p ush_back (STL/CLR) | Lägger till ett nytt sista element. |
deque::p ush_front (STL/CLR) | Lägger till ett nytt första element. |
deque::rbegin (STL/CLR) | Anger början av den omvända kontrollerade sekvensen. |
deque::rend (STL/CLR) | Anger slutet på den omvända kontrollerade sekvensen. |
deque::resize (STL/CLR) | Ändrar antalet element. |
deque::size (STL/CLR) | Räknar antalet element. |
deque::swap (STL/CLR) | Växlar innehållet i två containrar. |
deque::to_array (STL/CLR) | Kopierar den kontrollerade sekvensen till en ny matris. |
Egenskap | Beskrivning |
---|---|
deque::back_item (STL/CLR) | Öppnar det sista elementet. |
deque::front_item (STL/CLR) | Öppnar det första elementet. |
Operatör | Beskrivning |
---|---|
deque::operator!= (STL/CLR) | Avgör om två deque objekt inte är lika med. |
deque::operator(STL/CLR) | Öppnar ett element på en angiven position. |
operator< (deque) (STL/CLR) | Avgör om ett deque objekt är mindre än ett annat deque objekt. |
operatorn<= (deque) (STL/CLR) | Avgör om ett deque objekt är mindre än eller lika med ett annat deque objekt. |
operator= (deque) (STL/CLR) | Ersätter den kontrollerade sekvensen. |
operator== (deque) (STL/CLR) | Avgör om ett deque objekt är lika med ett annat deque objekt. |
operator> (deque) (STL/CLR) | Avgör om ett deque objekt är större än ett annat deque objekt. |
operatorn>= (deque) (STL/CLR) | Avgör om ett deque objekt är större än eller lika med ett annat deque objekt. |
Gränssnitt
Gränssnitt | Beskrivning |
---|---|
ICloneable | Duplicera ett objekt. |
IEnumerable | Sekvens genom element. |
ICollection | Underhåll en grupp med element. |
IEnumerable<T> | Sekvens genom inskrivna element. |
ICollection<T> | Behåll gruppen med inskrivna element. |
IList<T> | Behåll en ordnad grupp med inskrivna element. |
IDeque<Value> | Underhåll allmän container. |
Anmärkningar
Objektet allokerar och frigör lagring för den sekvens som det styr genom en lagrad matris med referenser som anger block av Value
element. Matrisen växer på begäran. Tillväxten sker på ett sådant sätt att kostnaden för att antingen vänta eller lägga till ett nytt element är konstant tid och inga återstående element störs. Du kan också ta bort ett element i endera änden i konstant tid och utan att störa återstående element. Därför är en deque en bra kandidat för den underliggande containern för mallklassen kö (STL/CLR) eller mallklass stack (STL/CLR).
Ett deque
-objekt har stöd för iteratorer med slumpmässig åtkomst, vilket innebär att du kan referera till ett element direkt med tanke på dess numeriska position och räkna från noll för det första (främre) elementet till deque::size (STL/CLR)() - 1
för det sista (bakre) elementet. Det innebär också att en deque är en bra kandidat för den underliggande containern för mallklassen priority_queue (STL/CLR).
En deque-iterator lagrar ett handtag till dess associerade deque-objekt, tillsammans med biasen för det element som den anger. Du kan bara använda iteratorer med deras associerade containerobjekt. Biasen av ett deque-element är inte nödvändigtvis samma som dess position. Det första elementet som infogas har bias noll, nästa tillagda element har bias 1, men nästa förberedda element har bias -1.
Infogning eller radering av element i båda änderna inte ändra värdet för ett element som lagras vid någon giltig bias. Om du infogar eller raderar ett inre element kan dock ändra elementvärdet som lagras vid en viss bias, så att värdet som anges av en iterator också kan ändras. (Containern kan behöva kopiera element upp eller ned för att skapa ett hål före en infogning eller fylla ett hål efter en radering.) En deque-iterator är dock fortfarande giltig så länge dess bias anger ett giltigt element. Dessutom förblir en giltig iterator dereferencable – du kan använda den för att komma åt eller ändra det elementvärde som den anger – så länge dess bias inte är lika med biasen för iteratorn som returneras av end()
.
Om du raderar eller tar bort ett element anropas destructor för dess lagrade värde. Om du förstör containern raderas alla element. En container vars elementtyp är en referensklass säkerställer därför att inga element överlever containern. Observera dock att en container med referenser inte förstöra dess element.
Medlemmar
deque::assign (STL/CLR)
Ersätter alla element.
Syntax
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);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Uppräkning som ska infogas.
val
Värdet för elementet som ska infogas.
Anmärkningar
Den första medlemsfunktionen ersätter den kontrollerade sekvensen med en upprepning av antal element i värdet val. Du använder den för att fylla containern med element som alla har samma värde.
Om InIt
är en heltalstyp fungerar den andra medlemsfunktionen på samma sätt som assign((size_type)first, (value_type)last)
. Annars ersätter den den kontrollerade sekvensen med sekvensen [first
, last
). Du använder den för att göra den kontrollerade sekvensen till en kopia till en annan sekvens.
Den tredje medlemsfunktionen ersätter den kontrollerade sekvensen med sekvensen som anges av uppräknaren höger. Du använder den för att göra den kontrollerade sekvensen till en kopia av en sekvens som beskrivs av en uppräknare.
Exempel
// 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)
Öppnar ett element på en angiven position.
Syntax
reference at(size_type pos);
Parametrar
pos
Position för element för åtkomst.
Anmärkningar
Medlemsfunktionen returnerar en referens till elementet i den kontrollerade sekvensen vid position pos. Du använder det för att läsa eller skriva ett element vars position du känner till.
Exempel
// 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)
Öppnar det sista elementet.
Syntax
reference back();
Anmärkningar
Medlemsfunktionen returnerar en referens till det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att komma åt det sista elementet när du vet att det finns.
Exempel
// 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)
Öppnar det sista elementet.
Syntax
property value_type back_item;
Anmärkningar
Egenskapen kommer åt det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det sista elementet när du vet att det finns.
Exempel
// 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)
Anger början av den kontrollerade sekvensen.
Syntax
iterator begin();
Anmärkningar
Medlemsfunktionen returnerar en iterator med slumpmässig åtkomst som anger det första elementet i den kontrollerade sekvensen, eller strax efter slutet av en tom sekvens. Du använder den för att hämta en iterator som anger current
början av den kontrollerade sekvensen, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// 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)
Tar bort alla element.
Syntax
void clear();
Anmärkningar
Medlemsfunktionen anropar effektivt deque::erase (STL/CLR)(
deque::begin (STL/CLR)(),
deque::end (STL/CLR)())
. Du använder den för att se till att den kontrollerade sekvensen är tom.
Exempel
// 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)
Typen av en konstant iterator för den kontrollerade sekvensen.
Syntax
typedef T2 const_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T2
som kan fungera som en konstant iterator med slumpmässig åtkomst för den kontrollerade sekvensen.
Exempel
// 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)
Typen av en konstant referens till ett element.
Syntax
typedef value_type% const_reference;
Anmärkningar
Typen beskriver en konstant referens till ett element.
Exempel
// 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)
Typen av en konstant omvänd iterator för den kontrollerade sekvensen.
Syntax
typedef T4 const_reverse_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T4
som kan fungera som en konstant omvänd iterator för den kontrollerade sekvensen.
Exempel
// 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::d eque (STL/CLR)
Skapar ett containerobjekt.
Syntax
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);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Objekt eller område som ska infogas.
val
Värdet för elementet som ska infogas.
Anmärkningar
Konstruktorn:
deque();
initierar den kontrollerade sekvensen utan element. Du använder den för att ange en tom inledande kontrollerad sekvens.
Konstruktorn:
deque(deque<Value>% right);
initierar den kontrollerade sekvensen med sekvensen [right.begin()
, right.end()
). Du använder den för att ange en inledande kontrollerad sekvens som är en kopia av sekvensen som styrs av deque-objektet höger. Mer information om iteratorerna finns i deque::begin (STL/CLR) och deque::end (STL/CLR).
Konstruktorn:
deque(deque<Value>^ right);
initierar den kontrollerade sekvensen med sekvensen [right->begin()
, right->end()
). Du använder den för att ange en inledande kontrollerad sekvens som är en kopia av sekvensen som styrs av deque-objektet vars handtag är rätt.
Konstruktorn:
explicit deque(size_type count);
initierar den kontrollerade sekvensen med antal element var och en med värdet value_type()
. Du använder den för att fylla containern med element som alla har standardvärdet.
Konstruktorn:
deque(size_type count, value_type val);
initierar den kontrollerade sekvensen med antal element med värdet val. Du använder den för att fylla containern med element som alla har samma värde.
Konstruktorn:
template<typename InIt>
deque(InIt first, InIt last);
initierar den kontrollerade sekvensen med sekvensen [first
, last
). Du använder den för att göra den kontrollerade sekvensen till en kopia av en annan sekvens.
Konstruktorn:
deque(System::Collections::Generic::IEnumerable<Value>^ right);
initierar den kontrollerade sekvensen med sekvensen som anges av uppräknaren höger. Du använder den för att göra den kontrollerade sekvensen till en kopia av en annan sekvens som beskrivs av en uppräknare.
Exempel
// 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::d ifference_type (STL/CLR)
Typerna av ett signerat avstånd mellan två element.
Syntax
typedef int difference_type;
Anmärkningar
Typen beskriver ett signerat elementantal.
Exempel
// 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)
Testar om det inte finns några element.
Syntax
bool empty();
Anmärkningar
Medlemsfunktionen returnerar true för en tom kontrollerad sekvens. Det motsvarar deque::size (STL/CLR)() == 0
. Du använder den för att testa om deque är tom.
Exempel
// 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)
Anger slutet på den kontrollerade sekvensen.
Syntax
iterator end();
Anmärkningar
Medlemsfunktionen returnerar en iterator med slumpmässig åtkomst som pekar precis utanför slutet av den kontrollerade sekvensen. Du använder den för att hämta en iterator som anger current
slutet av den kontrollerade sekvensen, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// 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)
Tar bort element vid angivna positioner.
Syntax
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Parametrar
första
Början av intervallet som ska raderas.
senaste
Slutet av intervallet som ska raderas.
där
Element som ska raderas.
Anmärkningar
Den första medlemsfunktionen tar bort elementet i den kontrollerade sekvensen som pekas på av där. Du använder det för att ta bort ett enda element.
Den andra medlemsfunktionen tar bort elementen i den kontrollerade sekvensen i intervallet [first
, last
). Du använder den för att ta bort noll eller fler sammanhängande element.
Båda medlemsfunktionerna returnerar en iterator som anger det första elementet som återstår utöver alla element som tas bort, eller deque::end (STL/CLR)()
om det inte finns något sådant element.
Vid radering av element är antalet elementkopior linjärt i antalet element mellan slutet av radering och den närmaste änden av sekvensen. (När du raderar ett eller flera element i slutet av sekvensen sker inga elementkopior.)
Exempel
// 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)
Öppnar det första elementet.
Syntax
reference front();
Anmärkningar
Medlemsfunktionen returnerar en referens till det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det första elementet när du vet att det finns.
Exempel
// 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)
Öppnar det första elementet.
Syntax
property value_type front_item;
Anmärkningar
Egenskapen kommer åt det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det första elementet när du vet att det finns.
Exempel
// 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)
Typen av det generiska gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::
IDeque<generic_value>
generic_container;
Anmärkningar
Typen beskriver det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// 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)
Typen av iterator som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::Generic::
ContainerRandomAccessIterator<generic_value> generic_iterator;
Anmärkningar
Typen beskriver en allmän iterator som kan användas med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// 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)
Typen av omvänd iterator som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::Generic::
ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;
Anmärkningar
Typen beskriver en allmän omvänd iterator som kan användas med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// 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)
Typen av ett element som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef GValue generic_value;
Anmärkningar
Typen beskriver ett objekt av typen GValue
som beskriver det lagrade elementvärdet för användning med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// 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)
Lägger till element på en angiven position.
Syntax
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);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Uppräkning som ska infogas.
val
Värdet för elementet som ska infogas.
där
Var i containern du ska infoga innan.
Anmärkningar
Var och en av medlemsfunktionerna infogar, innan elementet pekas på av där i den kontrollerade sekvensen, en sekvens som anges av de återstående operanderna.
Den första medlemsfunktionen infogar ett element med värdet val och returnerar en iterator som anger det nyligen infogade elementet. Du använder det för att infoga ett enda element före en plats som har angetts av en iterator.
Den andra medlemsfunktionen infogar en upprepning av antal element i värdet val. Du använder den för att infoga noll eller fler sammanhängande element som alla är kopior av samma värde.
Om InIt
är en heltalstyp fungerar den tredje medlemsfunktionen på samma sätt som insert(where, (size_type)first, (value_type)last)
. Annars infogas sekvensen [first
, last
). Du använder den för att infoga noll eller fler sammanhängande element som kopierats från en annan sekvens.
Den fjärde medlemsfunktionen infogar sekvensen som anges av höger. Du använder den för att infoga en sekvens som beskrivs av en uppräknare.
När du infogar ett enda element är antalet elementkopior linjärt i antalet element mellan insättningspunkten och sekvensens närmaste slut. (När du infogar ett eller flera element i slutet av sekvensen sker inga elementkopior.) Om InIt
är en indata-iterator utför den tredje medlemsfunktionen effektivt en enda insättning för varje element i sekvensen. När du infogar N
element är annars antalet elementkopior linjärt i N
plus antalet element mellan insättningspunkten och sekvensens närmaste slut.
Exempel
// 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 av iterator för den kontrollerade sekvensen.
Syntax
typedef T1 iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T1
som kan fungera som en iterator med slumpmässig åtkomst för den kontrollerade sekvensen.
Exempel
// 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 inte lika jämförelse.
Syntax
template<typename Value>
bool operator!=(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(left == right)
. Du använder den för att testa om vänstra inte sorteras på samma sätt som höger när de två deques jämförs element för element.
Exempel
// 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)
Öppnar ett element på en angiven position.
Syntax
reference operator[](size_type pos);
Parametrar
pos
Position för element för åtkomst.
Anmärkningar
Medlemsoperatorn returnerar en referens till elementet vid position pos. Du använder det för att komma åt ett element vars position du känner till.
Exempel
// 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::p op_back (STL/CLR)
Tar bort det sista elementet.
Syntax
void pop_back();
Anmärkningar
Medlemsfunktionen tar bort det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder den för att förkorta deque med ett element på baksidan.
Exempel
// 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::p op_front (STL/CLR)
Tar bort det första elementet.
Syntax
void pop_front();
Anmärkningar
Medlemsfunktionen tar bort det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder den för att förkorta deque med ett element längst fram.
Exempel
// 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::p ush_back (STL/CLR)
Lägger till ett nytt sista element.
Syntax
void push_back(value_type val);
Anmärkningar
Medlemsfunktionen infogar ett element med värdet val
i slutet av den kontrollerade sekvensen. Du använder det för att lägga till ett annat element i dequeen.
Exempel
// 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::p ush_front (STL/CLR)
Lägger till ett nytt första element.
Syntax
void push_front(value_type val);
Anmärkningar
Medlemsfunktionen infogar ett element med värdet val
i början av den kontrollerade sekvensen. Du använder det för att förbereda ett annat element till deque.
Exempel
// 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)
Anger början av den omvända kontrollerade sekvensen.
Syntax
reverse_iterator rbegin();
Anmärkningar
Medlemsfunktionen returnerar en omvänd iterator som anger det sista elementet i den kontrollerade sekvensen, eller precis utanför början av en tom sekvens. Därför anges beginning
för den omvända sekvensen. Du använder den för att hämta en iterator som anger current
början av den kontrollerade sekvensen som visas i omvänd ordning, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// 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)
Typen av referens till ett element.
Syntax
typedef value_type% reference;
Anmärkningar
Typen beskriver en referens till ett element.
Exempel
// 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)
Anger slutet på den omvända kontrollerade sekvensen.
Syntax
reverse_iterator rend();
Anmärkningar
Medlemsfunktionen returnerar en omvänd iterator som pekar precis utanför början av den kontrollerade sekvensen. Därför anges end
för den omvända sekvensen. Du använder den för att hämta en iterator som anger current
slutet av den kontrollerade sekvensen som visas i omvänd ordning, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// 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)
Ändrar antalet element.
Syntax
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Parametrar
new_size
Ny storlek på den kontrollerade sekvensen.
val
Värdet för utfyllnadselementet.
Anmärkningar
Medlemsfunktionerna ser båda till att deque::size (STL/CLR)()
returnerar hädanefter new_size. Om den måste göra den kontrollerade sekvensen längre lägger den första medlemsfunktionen till element med värdet value_type()
, medan den andra medlemsfunktionen lägger till element med värdet val. För att göra den kontrollerade sekvensen kortare raderar båda medlemsfunktionerna effektivt det sista elementet deque::size (STL/CLR)() -
new_size
gånger. Du använder den för att se till att den kontrollerade sekvensen har storleken new_sizegenom att antingen trimma eller utfyllnad av den aktuella kontrollerade sekvensen.
Exempel
// 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)
Typen av omvänd iterator för den kontrollerade sekvensen.
Syntax
typedef T3 reverse_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T3
som kan fungera som omvänd iterator för den kontrollerade sekvensen.
Exempel
// 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)
Räknar antalet element.
Syntax
size_type size();
Anmärkningar
Medlemsfunktionen returnerar längden på den kontrollerade sekvensen. Du använder den för att fastställa antalet element som för närvarande finns i den kontrollerade sekvensen. Om allt du bryr dig om är om sekvensen har en icke-nollstorlek kan du läsa deque::empty (STL/CLR)()
.
Exempel
// 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)
Typen av ett signerat avstånd mellan två element.
Syntax
typedef int size_type;
Anmärkningar
Typen beskriver ett icke-negativt elementantal.
Exempel
// 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)
Växlar innehållet i två containrar.
Syntax
void swap(deque<Value>% right);
Parametrar
rätt
Container att växla innehåll med.
Anmärkningar
Medlemsfunktionen växlar de kontrollerade sekvenserna mellan *this
och höger. Det gör det i konstant tid och det genererar inga undantag. Du använder det som ett snabbt sätt att utbyta innehållet i två containrar.
Exempel
// 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)
Kopierar den kontrollerade sekvensen till en ny matris.
Syntax
cli::array<Value>^ to_array();
Anmärkningar
Medlemsfunktionen returnerar en matris som innehåller den kontrollerade sekvensen. Du använder den för att hämta en kopia av den kontrollerade sekvensen i matrisform.
Exempel
// 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 av element.
Syntax
typedef Value value_type;
Anmärkningar
Typen är synonym för mallparametern Value.
Exempel
// 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 mindre än jämförelse.
Syntax
template<typename Value>
bool operator<(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar sant om, för den lägsta positionen i
för vilken !(right[i] < left[i])
är det också sant att left[i] < right[i]
. Annars returneras left->size() < right->size()
Du använder den för att testa om vänstra ordnas innan höger när de två deques jämförs element för element.
Exempel
// 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 mindre än eller lika jämförelse.
Syntax
template<typename Value>
bool operator<=(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(right < left)
. Du använder den för att testa om vänstra inte ordnas efter höger när de två deques jämförs element för element.
Exempel
// 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)
Ersätter den kontrollerade sekvensen.
Syntax
deque<Value>% operator=(deque<Value>% right);
Parametrar
rätt
Container som ska kopieras.
Anmärkningar
Medlemsoperatorn kopierar höger till objektet och returnerar sedan *this
. Du använder den för att ersätta den kontrollerade sekvensen med en kopia av den kontrollerade sekvensen i högra.
Exempel
// 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 lika jämförelse.
Syntax
template<typename Value>
bool operator==(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar endast sant om sekvenserna som styrs av vänstra och höger har samma längd och för varje position i
left[i] ==
right[i]
. Du använder den för att testa om vänstra sorteras på samma sätt som höger när de två deques jämförs element för element.
Exempel
// 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 större än jämförelse.
Syntax
template<typename Value>
bool operator>(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar right
<
left
. Du använder den för att testa om vänstra ordnas efter höger när de två deques jämförs element för element.
Exempel
// 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 större än eller lika jämförelse.
Syntax
template<typename Value>
bool operator>=(deque<Value>% left,
deque<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(left
<
right)
. Du använder den för att testa om vänstra inte ordnas innan höger när de två deques jämförs element för element.
Exempel
// 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