如果我有一个 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/