2011-07-16 61 views
1

假設我有四個無符號字符陣列,其被加入到地圖容器等的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」來實現我的觀點。請告訴我們是否有其他有效的方式來做到這一點。先謝謝你。

+3

'boost :: accumulators'和'for_each'? –

回答

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

那會計算A1的平均值只有 –

+0

@Ajay 謝謝!我想得到一個基於4個給定數組的平均數組。 unsigned char * ucAverage = new unsigned char [10000]; – GoldenLee

+0

for(int i = 0; <10000; i ++){unsigned char ucResult = 0; for(int j = 0; j GoldenLee