一个c++程序,望大虾帮忙看下
编了个小程序,分析一组数里面有多个个位数相同的数,程序能运行,但是感觉当待分析数组变成二维数组的时候,进行适当的改进后执行效率很低,希望各位大虾帮我改进下。程序如下:
#include <iostream>
#include <vector>
using namespace std;
int compare(vector<int> &a,vector<int> &b)
{
vector<int> temp,temp1;
int count=0,count1=0,count2=0;
for(int i=0;i<a.size();i++)
for(int j=0;j<b.size();j++)
{
if(a[i]==b[j]%10)
{
count+=1;
temp.push_back(a[i]);
}
}
for(int i=0;i<b.size()-1;i++)
for(int j=i+1;j<b.size();j++)
{
if(b[i]%10==b[j]%10)
{
count1+=1;
temp1.push_back(b[i]%10);
}
}
for(int i=0;i<temp.size();i++)
for(int j=0;j<temp1.size();j++)
{
if(temp[i]==temp1[j])
{
count2+=1;
}
}
return(count+count1-count2);
}
int main()
{
int analysisnum[]={1,2,3,5,6,7,8,11,13,23,25,28,30,15};
//首先我把上面的数按<10,>=10分成2个数组。另外3,13,23算一个count,哈哈,其他类推。
int a[]={1,2,3,5,6,7,8};
int b[]={11,13,23,25,28,30,15};
vector<int> temp(a,a+7),temp1(b,b+7);
int result=0;
result=compare(temp,temp1);
cout<<result;
return 0;
}