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

时间:2014-06-23 13:09:43

标签: c++ qt

我有一个结构 -

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

};

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

2 个答案:

答案 0 :(得分:0)

在您的示例中,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);

对于记录,我认为这是非常丑陋的代码,您应该重新评估您的数据结构。对不起,但我不想在不了解你的情况的情况下提出任何好的建议。

答案 1 :(得分:0)

使用QMap<quint64,uid>存储对象。