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),但成本是一个额外的变量,需要管理和额外的内存。