首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建自定义运算符c++

创建自定义运算符c++
EN

Stack Overflow用户
提问于 2014-08-27 03:05:28
回答 3查看 1.1K关注 0票数 1

我想问一下,是否可以在C++示例中定义自定义运算符:

代码语言:javascript
复制
Func function;
double a[2] = {-3, 3};
function = function integrate a;

注意: integrate is运算符用于区间<-3,3>上的数值积分。

我真正感兴趣的是如何创建我自己的运算符。

感谢您的回复和时间。Mari

EN

回答 3

Stack Overflow用户

发布于 2014-08-27 03:15:45

为什么你不为你的集成方法写一个类(也许是一个完整的类层次结构)或者一个函数也足够了。然后给它你想要集成的函数作为一个参数(使用std::function将允许这是一个函数指针,函数器或λ表达式)和你的集成范围。这就是我最近做的事情。例如在1D中:

代码语言:javascript
复制
#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;
}
票数 3
EN

Stack Overflow用户

发布于 2014-08-27 03:12:14

不能创建分项运算符。您可以创建一个要集成的函数

代码语言:javascript
复制
#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;
}
票数 1
EN

Stack Overflow用户

发布于 2014-08-27 03:09:01

您不能定义自定义运算符。您只能更改现有名称的含义。但优先级和分组保持与原始运算符相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25513374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档