我正在我的unordered_multimap中搜索获取一个键的所有值,它实际上是堆叠一个 int 和一个表示执行时间的值(以纳秒为单位)。我需要获取所有值以用一个键替换多键,平均。
我尝试了一些代码,这实际上是最有价值的:
std::unordered_multimap<int, std::chrono::nanoseconds> data;
std::chrono::nanoseconds average;
// *filling my map with value*
for (auto & pair : data){
auto range = data.equal_range(pair.first);
for_each (
range.first,
range.second,
[](std::unordered_multimap<int, std::chrono::nanoseconds>::value_type& x){
average = average + x.second;
}
);
average = average / data.count(pair.first);
data.erase(pair.first);
data.insert({pair.first, average});
}
我得到的错误error: 'average' is not captured : average = average + x.second;