假如一堆数据,每一个数据都有一个标志位,按照标志位值的不同进行划分为不同的组,进行归类。
代码如下:
void chunzhongForm::traverseList(winProList &dataList)
{int nSize = dataList.size();for(int i = 0; i < nSize; ++i){packetDate(dataList.at(i));}
}
void chunzhongForm::packetDate(const WM_PROPERTY &data)
{bool isHave = false;for(int i = 0; i < screenGroupVec.size(); ++i){winProList &everyList = screenGroupVec[i];if(everyList.at(0).sid == data.sid){isHave = true;everyList.append(data);break;}}if(!isHave){winProList sigleList;sigleList.append(data);screenGroupVec.push_back(sigleList);}
}
winProList 是一个结构体类型的list,通过遍历将每一个结构体按照其某一个字段的值放到一个list中,screenGroupVec为一个list类型的vector,而list是一个结构体类型,按照list中结构体的某一个字段的值不同进行归类。函数传入的形参是需要归类的结构体变量,最终所有归类的变量会储存在screenGroupVec中。
文章只有实现的思想,贵在参悟。