ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

4バイトを超えるデータをコレクションで管理する

SophiaFramework のコレクションクラスには、4バイトを超えるオブジェクトを
直接格納することはできません(SFXHashmap のキーに SFXAnsiString を格納する場合を除く)。
ポインタを介して格納します。

SFXArray<SInt64Ptr> array;
SFXArray<SInt64Ptr>::Iterator itor;
SInt64Ptr ptr;
SFCError err;

// データを追加する

// ヒープを確保する
ptr = ::new SInt64(1234);

// 成功したかチェックする
if (ptr != null) {

    // データを追加し、成功したかチェックする
    err = array.Append(ptr);
}

// 全てのデータを削除する

// コレクションからイテレータを取得し、先頭から巡回する
itor = array.GetFirstIterator();
while (itor.HasNext()) {

    // データを取得する
    ptr = itor.GetNext();
    
    // null でなかったらヒープを開放する
    if (ptr != null) {
        ::delete ptr;
    }
}

// array に登録されている全ての要素を削除する
array.Clear();

参照 SFXArray::Append | SFXArray::GetFirstIterator | SFXArray::Iterator::HasNext
SFXArray::Iterator::GetNext