C++ STL のコンテナー クラスの 1 つに少し似た動作をするプロジェクト用に取り組んでいるテンプレート クラスがありますが、それを安全に実装する方法を見つけるのに問題があります。
背景:エンティティ システム フレームワークである Artemis という既存のプロジェクトを Java から C++ に移植しようとしています。基本的に ArrayList である bag と呼ばれるクラスがありますが、そこに含まれるアイテムは配列に格納され、アクセスを高速化するためにインデックスで検索されます。格納された要素はほとんどの場合、独自のインデックスを格納しますが、それはそれほど重要ではありません。
問題: T (テンプレート型) の配列を含むテンプレート クラスがあります。私の問題は、T 要素の返品に関するものです。私のT &Get(int index)
関数では、指定されたインデックスの要素への参照を返したいのですが、その要素が存在しない場合の対処方法がわかりません。null のようなものを返したかったのですが、T
の型がポインターであることが保証されていないため、それは機能しません。コンテナー クラスにT*
s を含めることもできますが、その場合、int および非ポインター ( std::string
) の奇妙な問題/複雑な問題や、一部のアイテムが範囲外になることがあります (値をコピーしない限り?)。
組み込みの STL コンテナーがこれらの問題に対処する方法を知っている人はいますか? 私が求めていることを十分に明確にしていただければ幸いです...
リンク:
- 移植しているファイル
- これまでの私の作品(美しくないので注意してください)
移植しているファイル
前もって感謝します。