我在测试中有以下数据:
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写入循环?
答案 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);
}