// vector.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
struct AssessTypeInfo
{
int index;
int ijia;
int ikuang;
int cao;
};
typedef vector<AssessTypeInfo> SBPUVector;
typedef vector<SBPUVector> VectorSBPUVector;
SBPUVector SBPUVectortest;
VectorSBPUVector VectorSBPUVectortest;
VectorSBPUVector VectorGroupBoardResult;
vector<int> VectorGroup;
int iEveryGroupBoardNum=0;
void test(SBPUVector test);
int printtest();
void BoardFenpei(VectorSBPUVector kuangjiacao, int num, int igroup);
int main()
{
//======================================
AssessTypeInfo a1;
a1.index=0;
a1.ijia=0;
a1.ikuang=0;
a1.cao=0;
AssessTypeInfo a2;
a2.index=0;
a2.ijia=0;
a2.ikuang=0;
a2.cao=1;
AssessTypeInfo a3;
a3.index=0;
a3.ijia=0;
a3.ikuang=0;
a3.cao=11;
AssessTypeInfo a4;
a4.index=0;
a4.ijia=0;
a4.ikuang=0;
a4.cao=12;
//======================================
//======================================
AssessTypeInfo a5;
a5.index=0;
a5.ijia=0;
a5.ikuang=1;
a5.cao=0;
AssessTypeInfo a6;
a6.index=0;
a6.ijia=0;
a6.ikuang=1;
a6.cao=1;
AssessTypeInfo a7;
a7.index=0;
a7.ijia=0;
a7.ikuang=1;
a7.cao=11;
AssessTypeInfo a8;
a8.index=0;
a8.ijia=0;
a8.ikuang=1;
a8.cao=12;
//======================================
//======================================
AssessTypeInfo a9;
a9.index=0;
a9.ijia=0;
a9.ikuang=2;
a9.cao=0;
AssessTypeInfo a10;
a10.index=0;
a10.ijia=0;
a10.ikuang=2;
a10.cao=1;
AssessTypeInfo a11;
a11.index=0;
a11.ijia=0;
a11.ikuang=2;
a11.cao=11;
AssessTypeInfo a12;
a12.index=0;
a12.ijia=0;
a12.ikuang=2;
a12.cao=12;
//======================================
SBPUVectortest.push_back(a1);
SBPUVectortest.push_back(a2);
SBPUVectortest.push_back(a3);
SBPUVectortest.push_back(a4);
SBPUVectortest.push_back(a5);
SBPUVectortest.push_back(a6);
SBPUVectortest.push_back(a7);
SBPUVectortest.push_back(a8);
SBPUVectortest.push_back(a9);
SBPUVectortest.push_back(a10);
SBPUVectortest.push_back(a11);
SBPUVectortest.push_back(a12);
VectorGroup.push_back(4);
VectorGroup.push_back(4);
VectorGroup.push_back(4);
//单板按照“架框槽”分组
test(SBPUVectortest);
//打印“架框槽”分组情况
printtest();
//单板分组
for (int i=0; i<VectorGroup.size(); i++)
{
int iBoardNum = VectorGroup[i];
cout<<"iBoardNum:"<<iBoardNum <<endl;
BoardFenpei(VectorSBPUVectortest, iBoardNum, i);
}
int isize = VectorGroupBoardResult.size();
cout<<"==============大小:" <<isize<<endl;
for (int n=0; n<VectorGroupBoardResult.size(); n++)
{
cout<< VectorGroupBoardResult[n].size()<<endl;
for (int j=0; j<VectorGroupBoardResult[n].size(); j++)
{
cout<< "架:" << VectorGroupBoardResult[n][j].ijia <<\
"框:" << VectorGroupBoardResult[n][j].ikuang <<\
"槽:" << VectorGroupBoardResult[n][j].cao <<endl;
}
cout<<"==============================="<<endl;
}
return 0;
}
void test(SBPUVector testforsbpu)
{
SBPUVector SameVector;
SBPUVector DiffVector;
SameVector.push_back(testforsbpu[0]);
for (int i=1; i<testforsbpu.size(); i++)
{
if ( (testforsbpu[i].ijia == SameVector[0].ijia) \
&& (testforsbpu[i].ikuang == SameVector[0].ikuang) \
&& (testforsbpu[i].cao - SameVector[0].cao <= 4) )
{
SameVector.push_back(testforsbpu[i]);
}
else
{
DiffVector.push_back(testforsbpu[i]);
}
}
VectorSBPUVectortest.push_back(SameVector);
if (!DiffVector.empty())
{
test(DiffVector);
}
}
int printtest()
{
cout << VectorSBPUVectortest.size() <<endl;
for (int i=0; i<VectorSBPUVectortest.size(); i++)
{
cout<< VectorSBPUVectortest[i].size()<<endl;
for (int j=0; j<VectorSBPUVectortest[i].size(); j++)
{
cout<< "架:" << VectorSBPUVectortest[i][j].ijia <<\
"框:" << VectorSBPUVectortest[i][j].ikuang <<\
"槽:" << VectorSBPUVectortest[i][j].cao <<endl;
}
cout<<"==============================="<<endl;
}
return 0;
}
void BoardFenpei(VectorSBPUVector kuangjiacao, int num, int igroup)
{
iEveryGroupBoardNum = 0;
SBPUVector vectortemp;
for (int i=0; i<kuangjiacao.size(); i++)
{
if (iEveryGroupBoardNum == num)
{
VectorGroupBoardResult.push_back(vectortemp);
//重新赋值给VectorSBPUVectortest = kuangjiacao;
//因为删除了元素,后面再循环就需要传入最新的VectorSBPUVectortest
return;
}
//VectorSBPUVector::iterator itr1 = kuangjiacao.begin();
SBPUVector::iterator itr = kuangjiacao[i].begin();
//SBPUVector::iterator itr = (*itr1).begin();
vectortemp.push_back(*itr/*kuangjiacao[i].[0]*/);
kuangjiacao[i].erase(itr);
iEveryGroupBoardNum++;
}
}
Vector测试
最新推荐文章于 2024-05-22 19:30:05 发布