我有一个特定的结构:
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
}
现在我将这些存储在 a 中QLinkedList<MyStruct*>
以便我可以快速插入,并且查找大致相当于QList<MyStruct*>
. 理想情况下,我希望能够更快地执行查找,而不会失去插入速度。这让我看了一下QHash
,但我不确定QHash
当我只存储没有键的值时如何使用 a ,或者即使这是一个好主意。
解决此类问题的正确 Qt/C++ 方法是什么?理想情况下,查找时间应该是<= log(n)
. QHash
在这里是个好主意吗?如果是这样,我应该使用什么作为键和/或值?