Vector测试

// 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++;
	}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值