System.Set
C++
class RTL_DELPHIRETURN Set : public SetBase<T, (unsigned char)minEl, (unsigned char)maxEl>
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | sysset.h | System | System |
説明
Set は、Delphi にある set 型をエミュレートする C++ テンプレートです。
set 型は 3 つのパラメータと共に宣言されます:
パラメータ | 使用方法 |
---|---|
T
|
要素の型(通常は int、char、または enum 型)。 |
minEl
|
set が保持できる最小値(0 より小さい値は不可)。 |
maxEl
|
set が保持できる最大値(255 より大きい値は不可)。 |
2 つの set 型は、3 つのテンプレート パラメータのいずれかが異なると、別のものとされます:
Set <char, 'A', 'C'> s1;
Set <char, 'X', 'Z'> s2;
...
if (s1 == s2) // エラー。 == は 2 つめの set 型には実装されていません。
Set 型の複数のインスタンスを作成するには、typedef 式を使用します。
typedef Set <char, 'A','Z'> UPPERCASESet;
Set 変数の宣言は、変数を初期化しません。 次の例で示すように、Set 型の宣言と初期化は、<<
演算子を使用して行うことができます:
UPPERCASESet s1;
s1 << 'A' << 'B' << 'C'; // 初期化
UPPERCASESet s2;
s2 << 'X' << 'Y' << 'Z'; // 初期化
メモ: C++ ストリーム演算子(
<<
および>>
)を Set 型で使用するには、sysset
の前に、iostream
ライブラリをインクルードしなければなりません。 vcl.h または System.hpp をインクルードしている場合には、これは自動的に行われます。 次のストリーム演算子が定義されます:
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)