如何将基本算术运算符存储在变量中?
我想在 C++ 中做这样的事情:
int a = 1;
int b = 2;
operator op = +;
int c = a op b;
if (c == 3) // do something
由于我只考虑+
, -
,*
并且/
我可以将运算符存储在 a 中string
并且只使用 switch 语句。但是我想知道是否有更好/更简单的方法。
如何将基本算术运算符存储在变量中?
我想在 C++ 中做这样的事情:
int a = 1;
int b = 2;
operator op = +;
int c = a op b;
if (c == 3) // do something
由于我只考虑+
, -
,*
并且/
我可以将运算符存储在 a 中string
并且只使用 switch 语句。但是我想知道是否有更好/更简单的方法。
int a = 1;
int b = 2;
std::function<int(int, int)> op = std::plus<int>();
int c = op(a, b);
if (c == 3) // do something
根据需要替换std::plus<>
为std::minus<>
, std::multiplies<>
,std::divides<>
等。所有这些都位于 headerfunctional
中,因此请务必#include <functional>
事先。
如果您没有使用最新的编译器,请替换std::function<>
为。boost::function<>