私は特定の構造体を持っています:
struct MyClass::MyStruct
{
Statistics stats;
Oject *objPtr;
bool isActive;
QDateTime expiration;
};
そのためには、ポインタをプライベート コンテナに格納する必要があります。へのポインターを返す必要があるクライアント コードからオブジェクトを取得しますMyStruct
。例えば:
QList<MyStruct*> MyClass::structPtr( Statistics stats )
{
// Return all MyStruct* for which myStruct->stats == stats (== is overloaded)
}
また
QList<MyStruct*> MyClass::structPtr( Object *objPtr )
{
// Return all MyStruct* for which myStruct->objPtr == objPtr
}
現在、これらを に格納して、QLinkedList<MyStruct*>
高速挿入と とほぼ同等のルックアップができるようにしていますQList<MyStruct*>
。理想的には、挿入速度を落とさずにルックアップをより高速に実行できるようにしたいと考えています。これにより、 を見ることになりますが、キーなしで値を格納するだけの場合、またはそれが良い考えである場合でも、 QHash
a をどのように使用するかわかりません。QHash
このような問題に対処する適切な Qt/C++ の方法は何ですか? 理想的には、ルックアップ時間は<= log(n)
. QHash
ここで良い考えでしょうか?その場合、キーや値には何を使用すればよいですか?