Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Veranschaulicht, wie die Features Doppelschlange::operator== und Doppelschlange::operator< Standardvorlagenbibliothek (STL) in Visual C++ verwendet.
template<class T, class A>
bool operator==(
const deque <T, A>& Left,
const deque <T, A>& Right
);
template<class T, class A>
bool operator<(
const deque <T, A>& Left,
const deque <T, A>& Right
);
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 Vorlagenfunktion überlädt operator== , um zwei Objekte Vorlagenklassen doppelschlange verglichen werden soll.Die Funktion gibt links zurück.size == Rechts.size && (equal.begin, Links.end, Rechts.begin).Für Gleichheit muss die Anzahl der Elemente in Doppelschlangen beiden Objekte gleich sein.Die zweite Vorlagenfunktion überlädt operator< , um zwei Objekte Vorlagenklassen doppelschlange verglichen werden soll.Die Funktion gibt zurück:Left( lexicographical_compare.begin, Links.end, Rechts.begin, Rechts.end).Da lexicographical_compare verwendet wird, ist die Anzahl von Elementen nicht bei der Verwendung von **operator<**von Bedeutung.Im Beispielcode wird eine Codezeile, wenn das b-Objekt , z. B. *B.push_front(„D ")*hinzufügen, erstellen b , größer als ein.
Beispiel
// deque_operators.cpp
// compile with: /EHsc
//
// Functions:
// ==
// <
#include <iostream>
#include <deque>
using namespace std;
typedef deque<char > CHARDEQUE;
void print_contents (CHARDEQUE deque, char*);
int main()
{
//create a with 3 A's
CHARDEQUE a(3,'A');
a.push_front('C');
//create b with 4 B's.
CHARDEQUE b(6,'B');
//print out the contents
print_contents (a,"a");
print_contents (b,"b");
//compare a and b
if (a==b)
cout <<"a is equal to b"<<endl;
else if(a<b)
cout <<"a is less than b"<<endl;
else
cout <<"a is greater than b" <<endl;
//assign the contents of b to a
a.assign(b.begin(),b.end());
print_contents (a,"a");
print_contents (b,"b");
//compare a and b again
if (a==b)
cout <<"a is equal to b"<<endl;
else if(a<b)
cout <<"a is less than b"<<endl;
else
cout <<"a is greater than b" <<endl;
}
//function to print the contents of deque
void print_contents (CHARDEQUE deque, char *name)
{
CHARDEQUE::iterator pdeque;
cout <<"The contents of "<< name <<" : ";
for(pdeque = deque.begin();
pdeque != deque.end();
pdeque++)
{
cout << *pdeque <<" " ;
}
cout<<endl;
}
Output
The contents of a : C A A A
The contents of b : B B B B B B
a is greater than b
The contents of a : B B B B B B
The contents of b : B B B B B B
a is equal to b
Anforderungen
Header: <deque>
Hinweis