while(!infile.eof()) {
infile >> sal[sal_size].serial >> sal[sal_size].market >> sal[sal_size].date>> sal[sal_size].sn>> sal[sal_size].id>> sal[sal_size].num>> sal[sal_size].price;
sal_size++; }
///////////////取统一流水的商品ID前三位按升序无重复的保存起来/////////////////////////
new1[0][0]=sal[0].id/10000; for (int i =1;i new1[m][n]=sal[i].id/10000; //////流水号相同 n++; //outfile< if(new1[m][j] > new1[m][j+1]) { int t = new1[m][j]; new1[m][j] = new1[m][j+1]; new1[m][j+1] = t; } } } for(int l= 0;l< n;l++) { if(new1[m][l-1]!=new1[m][l]) outfile< } } infile.close();//关闭文件 outfile.close();//关闭文件 system( \} 2、//Apriori算法挖掘频繁项集support = 2(加注释) #include const int minsup=2; //设置最小支持度 map vector int isExist(vector vector { ////////////////////////////////////////////剪枝工作//// int count=0; //统计两个vector中相同的项的数目 vector map tempMap[vect1[st]]++; vect.push_back(vect1[st]); } for(int st=0;st tempMap[vect2[st]]++; if(tempMap[vect2[st]]==2) //表示这两项相同 { count++; } else { vect.push_back(vect2[st]); } } if((count+1)!=round) //要求两个项目集只有一个项目不相同,其他都相同 { vect.clear(); } return vect; } int isExist(vector { int count; //统计相同的项的数目 if(!items.empty()) { for(vector count=0; for(vector for(vector if(item[iz]==items[ix].at(iy)) { count++; } } } if(count==item.size()) //表示存在 { return 1; } } } return 0; } int main() { vector vector long trancount=0; //原始事务总数 char name1[50]; ifstream file; cout<<\选择要打开的文件:new1.txt new2.txt new3.txt\ cin>>name1; file.open(name1,ios::in); //打开数据文件 if(!file) //检查文件是否打开成功 { cout<<\ return 1; } else { string temp; vector while(getline(file,temp)) //一行一行读入数据 { trancount++; begin=0; temp.erase(0,temp.find_first_not_of(\去除字符串首部的空格 temp.erase(temp.find_last_not_of(\ while((end=temp.find('\\t',begin))!=string::npos) //每一个事务中的项是以'\\t'为分隔符的 { item.push_back(temp.substr(begin,end-begin)); //将每一个项插入item中 begin=end+1; } item.push_back(temp.substr(begin)); //一个事务中的最后一项 datavec.push_back(item); //将一个事务中的所有项当成一个整体插入另一个大的vector中 item.clear(); //清空item } cout<<\ getchar(); map for(vector for(vector items_count[datavec[ix].at(iy)]++; //该项集的计数加 item_map[datavec[ix].at(iy)]=1; //表示该项目在该事务中存在,值为1,否则默认为0 } bitmap.push_back(item_map); item_map.clear(); //这里一定要清空一下