求助,数组合并算法问题
struct ITEM
{
int nID;
int nValue;
};
CArray<ITEM, &ITEM> arr;
现在情况是有N个这样的arr,我希望把N个arr合并为一个arrResult,其中nID相同的是累加到arrResult中相对应的项。
我现在处理方法是:(伪代码,arrNi表示第i个arr)
for(int i = 0; i<N; i++)
{
for(int j = 0; j<arrNi.GetSize(); j++)
{
bool bFind = false;
for(int k = 0; k < arrResult.GetSize(); k++)
{
if(arrResult.GetAt(k).nID == arrNi.GetAt(j).nID)
{ bFind = TRUE; arrResult.GetAt(k).nValue += arrNi.GetAt(j).nValue;}
}
if(!bFind){新增一个到arrResult}
}
}
求算法改进。