C ++通过运算符循环

| 我有一笔款项,例如:
x + y
我还想对相同的两个变量执行减法,乘法和除法:
x - y
x * y
x / y 
依次遍历所有四个操作员的最佳方式是什么? 我知道用函数式编程语言很容易做到这一点,但我不确定使用C ++。 提前致谢。     
已邀请:
除了显而易见的“把它们写出来”,只有一个主意:
int add(int l, int r){
  return l + r;
}

int sub(int l, int r){
  return l - r;
}

int mul(int l, int r){
  return l * r;
}

int div(int l, int r){
  return l / r;
}

int main(){
  typedef int (*op)(int,int);
  op ops[4] = {add, sub, mul, div};

  int a = 10, b = 5;
  for(int i=0; i < 4; ++i){
    ops[i](a,b);
  }
}
以Ideone为例。     
如果运算符是用户定义的,则在需要指向函数(成员)的指针时可以传递它们。对于基本类型,您可能需要如Xeo所示编写包装器。 您也可以接受std :: binary_function并使用std :: plus等。 在C ++ 0X中,使用std :: function和lambda可使此操作变得更容易。 但是显然,更精确地了解您想要实现的目标将有所帮助。     
可能是这样的样子(类似于函数式编程语言):
template<typename T>
std::vector<T> do_ops( const T& a, const T& b )
{
  std::vector<T> result;
  result.push_back( a + b );
  result.push_back( a - b );
  result.push_back( a * b );
  result.push_back( a / b );
  return result;
}

int main()
{
  std::vector<int> res = do_ops( 10, 5 );  
}
    

要回复问题请先登录注册