1、我往一个数组里按顺序填充内容,如何求出我填充的内容的个数,用sizeof(buffer)/size(buffer[0]这个是数组的长度,但是我只想求出我填充的个数,没填充的不算!
2、QList有没有和数组初始化类似的方案?即QList<Class_Test> class_test = {a, b, c};
//SimpleCtrl.h
struct LanguageInfo
{
LanguageType lang;
QString langName;
int row;
}
struct DestinationInfo
{
DestinationType dest;
QString destName;
int row;
LanguageInfo langInfo[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改一下
struct DestinationInfo
{
DestinationType dest;
QString destName;
int row;
QList<LanguageInfo> langInfo;
}
//新问题出来了,编译器报错:大体意思是,DestinationInfo SimpleCtrl::destInfo[]这个数组初始化有问题
//问:
//对于QList(和java一样),我如果不像数组那样初始化,然道必须在对象的基础上调用QList::append()么?这样我感觉对我的表的整体可读性会有破坏
C++ QList struct 初始化 Qt
------解决方案--------------------
用sizeof只能求出整个数组的大小
你填充了数据和没填充数据,没存里面都是 0 和1 ,别说计算机不知道了,人也不可能知道啊。
所以你需要自己定义一个变量来记录你填充了多少。