将数据的平均值插入向量中

时间:2012-05-05 16:05:10

标签: c++ stl stdvector

我在测试中有以下数据:

2011-01-03      2116    
2011-01-03      2120    
2011-01-04      2116    
2011-01-04      2115

和以下代码:

std::map<std::string, std::vector<double> >::iterator tk = test.begin();
std::vector<double>tmp;

std::copy(tk->second.begin(), tk->second.end(), std::back_inserter(tmp));

使用上面的代码tmp包含:

2116
2120
2116
2115

但是,我想将每个日期tk->second的平均值插入tmp。我是否必须将back_inserter写入循环?

1 个答案:

答案 0 :(得分:1)

for(auto it = test.begin(); it != test.end(); it++)
{
  double sum = 0.0;
  int count = 0;
  for(auto it2 = it->second.begin(); it2 != it->second.end(); it2++, count++)
  { 
    sum += *it2;
  }
  tmp.push_back(sum / count);
}