C++ 如何从qt/C+中的成员项列表中获取父项列表+;?

C++ 如何从qt/C+中的成员项列表中获取父项列表+;?,c++,qt,C++,Qt,我有一个结构- struct uid { quint64 id; quint64 parent; enum_src src; }; 现在,我有一个uid.id的qlist。如何从中获取uid列表? 我不想通过for循环等进行遍历。您有什么有效的方法来进行遍历吗?在您的示例中,id只是一个数字。你需要创建一些东西让你的程序知道这个数字是uid的id 我能想到的不使用任何“循环等”的唯一方法是将所有UID存储在QHash中,id作为密钥。所以它是这样的: //establish the h

我有一个结构-

struct uid
{
 quint64 id;
 quint64 parent;
 enum_src src;

};
现在,我有一个uid.id的qlist。如何从中获取uid列表?
我不想通过for循环等进行遍历。您有什么有效的方法来进行遍历吗?

在您的示例中,id只是一个数字。你需要创建一些东西让你的程序知道这个数字是uid的id

我能想到的不使用任何“循环等”的唯一方法是将所有UID存储在QHash中,id作为密钥。所以它是这样的:

//establish the has that indexes your uids by their id
QHash<quint64, uid> idToUidHash;

uid first;
uid second;
first.id = 1;
second.id = 2;

idToUidHash.insert(1,first);
idToUidHash.insert(2,second);

//Now just get it back out
QList<uid> theUidIWant;
theUidIWant = itToUidHash.values(1);
//建立按UID id索引的has
QHash-idToUidHash;
uid优先;
第二;
first.id=1;
第二,id=2;
insert(1,第一个);
插入(2,秒);
//现在把它拿出来
QList theUidIWant;
theUidIWant=itToUidHash.value(1);

作为记录,我认为这是一段非常难看的代码,您应该重新评估您的数据结构。很抱歉,在不了解您的情况的情况下,我无法提出任何好的建议。

使用
QMap
存储对象。

如何从
uid.id
获取
uid
?换句话说,如何从数字中得到结构?是的,这就是我想要实现的。请记住,其中没有指针。它只是一个与结构成员id匹配的数字。相应的结构存储在哪里?如果您只有一个数字,那么您无法神奇地从中获取结构。如果您可以保证每个
id
都是唯一的,那么您可以创建一个并行哈希表,用于检索指向您要查找的
uid
的指针。复杂性为O(1),但成本是一个额外的变量,需要管理和额外的内存。