System.Set
C++
class RTL_DELPHIRETURN Set : public SetBase<T, (unsigned char)minEl, (unsigned char)maxEl>
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
class | public | sysset.h | System | System |
Beschreibung
Set ist eine C++-Template zum Emulieren der Set-Typen von Delphi.
Ein Set-Typ wird mit drei Parametern deklariert:
Parameter | Bedeutung |
---|---|
T
|
Der Typ der Elemente (normalerweise int, char oder enum). |
minEl
|
Der Minimalwert, den der Set-Typ aufnehmen kann (dieser Wert darf nicht kleiner als 0 sein). |
maxEl
|
Der Maximalwert, den der Set-Typ aufnehmen kann (dieser Wert darf nicht größer als 255 sein). |
Zwei Set-Typen sind verschieden, wenn einer der drei Template-Parameter unterschiedlich ist:
Set <char, 'A', 'C'> s1;
Set <char, 'X', 'Z'> s2;
...
if (s1 == s2) // FEHLER: == für den zweiten Set-Typ nicht implementiert
Um mehrere Instanzen eines Set-Typs zu erstellen, verwenden Sie einen typedef-Ausdruck.
typedef Set <char, 'A','Z'> UPPERCASESet;
Durch die Deklaration einer Set-Variable wird die Variable nicht initialisiert. Sie können Set-Typen mit dem Operator <<
, wie im folgenden Beispiel, deklarieren und initialisieren:
UPPERCASESet s1;
s1 << 'A' << 'B' << 'C'; // Initialisieren
UPPERCASESet s2;
s2 << 'X' << 'Y' << 'Z'; // Initialisieren
Anmerkung: Für die Verwendung der C++-Streaming-Operatoren (
<<
und>>
) mit Set-Typen müssen Sie dieiostream
-Bibliothek vorsysset
einbeziehen. Dies geschieht automatisch, wenn Sie vcl.h oder System.hpp einbeziehen. Die folgenden Stream-Operatoren sind definiert:
template <class T, unsigned char minEl, unsigned char maxEl> ostream&
operator <<(ostream& os, const Set<T, minEl, maxEl> & arg);
template <class T, unsigned char minEl, unsigned char maxEl> istream&
operator >>(istream& is, Set<T, minEl, maxEl> & arg)