我有一个struct和一个struct的QList。基于计数我想创建多个QList。
例如:
struct Data
{
QString id;
QString name;
};
QList<Data> lst;
假设我在lst中有3个值,我想创建3个QList。
for(int i=0;i<=lst.count();i++)
{
//Declare new list here for each.
//Result 3 lists : QList<Data> lst1,QList<Data> lst2,QList<Data> lst3
}
有人可以告诉我,这是否可以在Qt?有出路吗?
答案 0 :(得分:0)
好吧,你可以定义
for(int i=0;i<=3;i++)
{
QList<Data> lst;
}
将定义3个列表,每个列表称为lst
。问题是,每个的寿命都限于循环体。这可能不是你想要的。
我怀疑你想要一个列表列表。 QList< >
模板是通用的,它可以包含任何其他类型,包括另一个QList< >
。所以你得到QList<QList< Data > >
答案 1 :(得分:0)
您无法声明变量数量的变化。而是制作列表(或其他容器)。
根据你的评论( lst1将拥有id = 1 的所有数据),我建议使用QMap<int, QList<Data>>
。 E.g。
QMap<int, QList<Data>> lstN;
QList<Data> lst;
for(int i=0;i<lst.count();i++)
{
lstN[lst[i].id] << lst[i];
}
这为您提供了从id到具有该id的Data
对象列表的映射。例如。 lstN[1]
是ID = 1