C++编写的modify_if函数

Zee*_*aja -1 c++ stl visual-studio

我有一个问题,让我对我必须做的事感到困惑.问题如下:

  1. 我们的想法是设计一个名为Modify_If的通用函数,它将输入x(通过引用传递)和两个函子f1和f2.函数Modify_If将使用函子f1来确定x是否服从某个条件.如果是这样,Modify_if将通过将functor f2应用于它来更改x的值.

Modify_If的原型如下:

template <class C, class Tester, class Transform>
void Modify_If(C & a, Tester f, Transform g)
Run Code Online (Sandbox Code Playgroud)

我必须编写Modify_If函数,但我不知道从哪里开始,所以如果有人可以帮助我,我会很感激.

Dar*_*rio 5

template <class C, class Tester, class Transform>
void Modify_If(C& a, Tester f1, Transform f2) {
    if (f1(a)) // Apply f1 to a - Check whether result is true
        a = f2(a); // Transform with f2; save
}
Run Code Online (Sandbox Code Playgroud)

  • 你真的没有想到,你帮助完成这项工作但没有想到自己的人有一天会成为你的同事,并会让你问那个人是如何获得学位的?-1 (9认同)
  • 这个问题上的"家庭作业"标签有点假设.请参阅http://meta.stackexchange.com/questions/10811/homework-on-stackoverflow (3认同)
  • @sbi:好吧,告诉他不要问我不要回答! (2认同)
  • 我喜欢为每个人提供代码答案,因为这意味着在大多数情况下,他们只是复制cody而不考虑意味着以后在工作场所竞争较少:) (2认同)