c++ - 在 C++ 中操作成对 vector 的值之一

标签 c++ c++11 vector std-pair

如果我有一个 double PMF vector ,我可以使用如下转换命令将 vector 的所有元素除以 double count:

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

但是现在,我有一个无符号字符/ double 对的 vector :

vector<pair<unsigned char, double>> PMF

我希望将 double 值替换为它们的值除以计数。我一直无法找到使用转换命令或任何其他 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;

关于c++ - 在 C++ 中操作成对 vector 的值之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20192795/

相关文章:

c++ - 从字符串 vector 中删除特殊字符 C++

c++ - ncurses & curses - 编译器 undefined reference

c++ - 超过 64 位时的未定义行为

C++11 和广义初始化器约定

c++ - 在 mac os x 中制作期间出现错误未知类型名称 'constexpr'

c++ - 如何遍历节点 vector

c++ - 在其他 vector 上使用索引相关函数初始化 const vector

c++ - 是否可以使用 Arduino IDE 包含来自另一个库的库?

c++ - 对 cv::inpaint 的 undefined reference - 错误 1

C++11 右值和 move 语义混淆(return 语句)