deque::erase und deque::clear
Veranschaulicht, wie die Features Doppelschlange::Löschen und Doppelschlange::freier Speicherplatz Standardvorlagenbibliothek (STL) in Visual C++ verwendet.
iterator erase(
iterator Iter
);
iterator erase(
iterator First,
iterator Last
); void clear( ) const;
Hinweise
Hinweis |
---|
Die Klasse/Parameternamen im Prototyp stimmen nicht mit der Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern. |
Die erste erase-Memberfunktion entfernt das Element des Containers, der durch Iterdargestellt wird.Die zweite erase-Memberfunktion entfernt die Elemente des Containers im Bereich [First, Last).Beides gibt ein Iterator, der das erste Element festgelegt wird, das über alle Elemente entfernt wurden, oder end hinaus bleibt, wenn kein solches Element vorhanden ist.N-Element ursachen N-Destruktor einer Zuweisung und ruft für jedes Element zwischen der Einfügemarke und dem näheren Ende der Sequenz entfernen.Ein Element an beiden Enden Entfernen und Iteratoren nur für ungültig erklärt Verweise, die die gelöschte Elemente festlegen.Andernfalls ein Element für ungültig erklärt und Löschen von Iteratoren alle Verweise.Die klaren Memberfunktionsaufrufe erase(begin, end).
Beispiel
// deque_erase_clear.cpp
// compile with: /EHsc
//
// Functions:
//
// erase
// clear
// begin
// end
//////////////////////////////////////////////////////////////////////
#include <iostream>
#include <deque>
using namespace std;
typedef deque<int > INTDEQUE;
void print_contents (INTDEQUE deque);
int main()
{
// create a and with elements 1,2,3,4 and 5
INTDEQUE a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
a.push_back(5);
//print the contents
print_contents (a);
// erase the second element
a.erase(a.begin()+1);
print_contents (a);
//erase the last two elements
a.erase(a.end()-2,a.end());
print_contents (a);
//clear a
a.clear();
print_contents (a);
}
void print_contents (INTDEQUE deque) {
INTDEQUE::iterator pdeque;
cout <<"The output is: ";
for(pdeque = deque.begin();
pdeque != deque.end();
pdeque++)
{
cout << *pdeque <<" " ;
}
cout<<endl;
}
Anforderungen
Header: <deque>