qq_46523430 2022-10-01 17:23
浏览 6
已结题

关于#C++中function中参数为类#的问题,如何解决?

在编写C++时候,我想用function写一个递归函数,该函数名字为modify,代码如下

struct Node {
    Node *l = nullptr, *r = nullptr;
    int val = 0;

    Node() {}
};


class NumArray {
public:
    Node *tree = nullptr;

    void build(int l, int r, vector<int> &nums, Node *&node) {
        if (node == nullptr) node = new Node();
        if (l == r) {
            node->val = nums[l];
            return;
        }
        int m = l + r >> 1;
        build(l, m, nums, node->l);
        build(m + 1, r, nums, node->r);
        pushUp(node);
    }

    inline void pushUp(Node *&node) {
        node->val = node->l->val + node->r->val;
    }

    NumArray(vector<int> nums) {
        build(0, nums.size() - 1, nums, tree);
    }


    void update(int index, int val) {
         // 错误代码在此处
        function<void(int, int, Node*)> modify = [&](int l, int r, Node *&node) {
            if (l == r && l == index) {
                node->val = val;
                return;
            }
            int m = l + r >> 1;
            modify(l, m, node->l);
            modify(m + 1, r, node->r);
        };
    }

    int sumRange(int left, int right) {

    }
};

Clion提醒我modify函数是一个不可行的转换
我贴下错误提示

img

然后我定位错误原因,只要把参数Node去除,错误提示去除,我想可能是我function中的Node参数的语法写错了,因为Node*是一个结构体,我就想,它是不是有自己专属的写法。所以请大家告诉我真真的格式。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月9日
    • 创建了问题 10月1日

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题