![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
コレクション クラスは、可変長配列、スタック、リスト、ハッシュ マップの 4 種類があります。
複数の要素の集まり(コレクション)に対して、要素を追加・更新・削除・検索するには、コレクション クラスを利用します。
表 15.1. コレクション クラス
| クラス名 | 解説 |
|---|---|
| SFXArray | 可変長配列を操作するためのデータ構造です。 |
| SFXStack | スタックを操作するためのデータ構造です。 |
| SFXList | 双方向のリストを操作するためのデータ構造です。 |
| SFXHashmap | 要素がキーと値から構成されるハッシュ マップを操作するデータ構造です。 |
![]() |
コレクション クラスの制限 |
|---|---|
|
コレクション クラスには、 4 バイト以下の要素しか格納できません。4 バイトよりも大きなインスタンス等はそのポインターを格納します。 | |
SFXArray は多数の要素を順に格納するのに適したデータ構造です。
例 15.2. 要素の追加
array.InsertLast(3);
array.InsertLast(-15);
array.InsertLast(0);
array.InsertLast(1003);
// array = (3, -15, 0, 1003)
例 15.3. 要素の取得、設定
SInt32 n = array[1]; // n = -15 array[2] = 6; // array = (3, -15, 6, 1003) SInt32 m = array.GetFirst(); // m = 3 SInt32 r = array.GetLast(); // r = 1003
例 15.5. 要素の挿入
// 2 個目の要素の後ろに 99 を挿入する array.Insert(2, 99); // array = (3, -15, 99, 6, 1003) // 先頭に -100 を挿入する array.InsertFirst(-100); // array = (-100, 3, -15, 99, 6, 1003)
例 15.8. サイズの伸長
array.SetSize(5); // array = (不定, 不定, 不定, 不定, 不定) SInt32 i; for (i = 0; i < array.GetSize(); ++i) { array[i] = 10 * (i - 2) * (i - 2); } // array は (40, 10, 0, 10, 40) となる
例 15.9. 検索と存在の判定
SInt32 n1 = array.FirstIndexOf(10); // n1 = 1 SInt32 n2 = array.FirstIndexOf(5); // n2 = -1 SInt32 n3 = array.LastIndexOf(10); // n3 = 3 Bool b = array.Contains(40); // b = true
例 15.10. 各要素に対する処理 (イテレータ) 1
SFXArray<SInt32>::Iterator iterator = array.GetFirstIterator();
while(iterator.HasNext()) {
SInt32 n = iterator.GetNext(); // n に要素が入る
// n に対して処理をする
}
上のコードは次と等価です。
SFXStack は後から追加した要素を先に取り出すためのデータ構造です。
SFXList は双方向のリストを操作するためのデータ構造です。
例 15.17. 要素の追加
list.InsertLast(3);
list.InsertLast(-15);
list.InsertLast(0);
list.InsertLast(1003);
// list = ( 3 , -15 , 0 , 1003 )
例 15.18. 要素の取得、設定
// SInt32 n = list[1]; 不可 // list[2] = 6; 不可 SInt32 m = list.GetFirst(); // m = 3 SInt32 r = list.GetLast(); // r = 1003
その他の操作は SFXArray と同様です。
SFXHashmap は、キーと値からなるハッシュ テーブルを操作するデータ構造です。
例 15.20. 定義
// SFXAnsiString と SInt32 の対を格納するハッシュ マップの定義 // ( 例外 ) ハッシュ マップでは SFXAnsiString と SFXWideString をキーとして利用できる SFXHashmap<SFXAnsiString, SInt32> hashmap;
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|