2012-05-05 4 views
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 в цикл?

ответ

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); 
} 
Смежные вопросы