c++ - 将数据的平均值插入 vector

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

最佳答案

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);
}

关于c++ - 将数据的平均值插入 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463584/

相关文章:

c# - 在 C# 应用程序中从非托管 DLL 导入函数

C++将临时文件作为bash脚本执行

c++ - 遍历 vector c++ 中的列表

c++ - 控制 std::vector 重新分配

c++ - 将对象移动到 std::vector 时的异常保证

c++ - 如何使用带有 future<T> vector 的基于范围的 for 循环

c++ - 在 C++ 中执行之前分析整个代码

c++ - 如何获取 linux 的已知路径

c++ - 为什么 std::vector 可能比原始动态分配的数组更快?

c++ - STL 排序 - 严格的弱排序