繁体   English   中英

在C ++中处理对向量的值之一

[英]Manipulating one of the values of a vector of pairs in C++

如果我有一个double of PMF的向量,则可以通过使用以下transform命令将向量的所有元素除以double 计数

transform(PMF.begin(),PMF.end(),PMF.begin(),bind2nd(divides<double>(),count));

但是现在,我有了一个无符号字符/双对向量:

vector<pair<unsigned char, double>> PMF

我希望将双精度值替换为它们的值除以count 我还没有找到使用transform命令或任何其他C ++ 11功能执行此操作的方法。 有谁知道如何做到这一点?

您可以像下面这样使用lambda函数:

transform(PMF.begin(),
          PMF.end(),
          PMF.begin(),
          [count](const pair<unsigned char, double> &x)
          {
             return make_pair(x.first, x.second/count);
          });

要么

for_each(PMF.begin(),
         PMF.end(),
         [count](pair<unsigned char, double>& x)
         {
            x.second /= count;
         });

要么

for (auto &x : PMF)
  x.second /= count;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM