我想问一下,是否可以在C++示例中定义自定义运算符:
Func function;
double a[2] = {-3, 3};
function = function integrate a;注意: integrate is运算符用于区间<-3,3>上的数值积分。
我真正感兴趣的是如何创建我自己的运算符。
感谢您的回复和时间。Mari
发布于 2014-08-27 03:15:45
为什么你不为你的集成方法写一个类(也许是一个完整的类层次结构)或者一个函数也足够了。然后给它你想要集成的函数作为一个参数(使用std::function将允许这是一个函数指针,函数器或λ表达式)和你的集成范围。这就是我最近做的事情。例如在1D中:
#include <functional>
#include <iostream>
double integrate(std::function<double(double)> f, double a, double b)
{
return (b-a)/2.0*(f(a)+f(b));
}
int main()
{
std::cout << integrate([](double x){ return x*x;}, -3.0, 3.0) << std::endl;
return 0;
}发布于 2014-08-27 03:12:14
不能创建分项运算符。您可以创建一个要集成的函数
#include <functional>
typedef std::function<double(double)> Function;
double integrate(Function func, double a[])
{
double result = 0.0;
//do numeric integration
return result;
}
double my_func(double x)
{
return x * x;
}
int main()
{
double a[] = {-3.0, 3.0};
const double result = integrate(my_func, a);
return 0;
}发布于 2014-08-27 03:09:01
您不能定义自定义运算符。您只能更改现有名称的含义。但优先级和分组保持与原始运算符相同。
https://stackoverflow.com/questions/25513374
复制相似问题