计算四个给定的unsigned char数组的平均数组

时间:2011-07-16 12:20:25

标签: c++ arrays average

假设我有四个unsigned char数组的toatl,它们被添加到地图容器中,如下所示:

std::map<std::string, unsigned char*> UCArray;
UCArray.insert(std::make_pair("A1", new unsigned char[10000]));
UCArray.insert(std::make_pair("A2", new unsigned char[10000]));
UCArray.insert(std::make_pair("A3", new unsigned char[10000]));
UCArray.insert(std::make_pair("A4", new unsigned char[10000]));

我希望得到一个基于UCArray的平均值填充的数组,其中所有四个unsigned char缓冲区都被初始化并填充有效值。我知道我可以通过使用两个“for ... loop”来表达我的观点。请告诉我们是否还有其他有效方法可以做到这一点。提前谢谢。

1 个答案:

答案 0 :(得分:0)

for(std::map<std::string, unsigned char*>::const_iterator iter = UCArray.begin();
    iter != UCArray.end(); ++iter)
{
   int nAverage =  std::accumulate(
             iter->second, 
             iter->second+10000, 
             0)  / 10000;
}