0

我在测试中有以下数据:

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 写入循环?

4

1 回答 1

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);
}
于 2012-05-05T16:26:29.937 回答