大虾们进来看看讨论这种情况如何操作?
1、我往一个数组里按顺序填充内容,如何求出我填充的内容的个数,用sizeof(buffer)/size(buffer[0]这个是数组的长度,但是我只想求出我填充的个数,没填充的不算!
2、QList有没有和数组初始化类似的方案?即QList<Class_Test> class_test = {a, b, c};
C++ QList struct 初始化 Qt
//SimpleCtrl.h
structLanguageInfo
{
LanguageTypelang;
QStringlangName;
introw;
}
structDestinationInfo
{
DestinationTypedest;
QStringdestName;
introw;
LanguageInfolangInfo[3];
}
Class SimpleCtrl
{
...
static DestinationInfo destInfo[];
};
//SimpleCtrl.cpp
DestinationInfo SimpleCtrl::destInfo[] = {
{FrameworkBase::Destination_NearMiddleEast, "NearMiddleEast", 1, {{Language_MEE, "ME English", 0}, {Language_Aribic, "Aribic", 1}}),
......
}
//上面是我封装的两个结构体,大体意思就是式向地(Destination)里动态加载语言(Language)
//在结构体数组destInfo[]里存放的我需要动态加载数据集,是按照结构体的数据存放的。
//现在主要问题是destInfo[destIndex].languageInfo[]这个数组不是每个都填充3个数据,可能是一个。。。
//我用sizeof(destInfo[destIndex].languageInfo)/sizeof(destInfo[destIndex].languageInfo[0]) == 3这个肯定是恒等的。
//所以我希望有方法求出我自己填充的数组的个数。
//后来我考虑了下,准备在结构体里用QList(其实和java里的List一样,这样我可以调QList::size()得出长度),即:将struct DestinationInfo改一下
structDestinationInfo
{
DestinationTypedest;
QStringdestName;
introw;
QList<LanguageInfo>langInfo;
}
//新问题出来了,编译器报错:大体意思是,DestinationInfo SimpleCtrl::destInfo[]这个数组初始化有问题
//问:
//对于QList(和java一样),我如果不像数组那样初始化,然道必须在对象的基础上调用QList::append()么?这样我感觉对我的表的整体可读性会有破坏