首页 > 解决方案 > 函数中的默认参数指向 c++ unordered_map 中的引用

问题描述

我是一名 JS 开发人员,为了实现这个函数头,我这样做:

function gridTraveler(m,n,memo={})

在这里,我知道对象将在 JS 中通过引用传递。

所以在 C++ 中,我决定这样做:

int gridTraveler(int m,int n,std::unordered_map<int,int>& memo = {})

但我收到一个错误:“对非 const 的初始引用必须是左值”。

我应该如何将默认参数传递给函数以及通过引用传递hasmap?

注意:我将通过在函数体中添加键和值来编辑备忘录对象

标签: javascriptc++unordered-mapmemoization

解决方案


您的意思可能可以通过处理无序映射生命周期的两个参数重载来实现。

int gridTraveler(int m,int n,std::unordered_map<int,int>& memo) {
    //your implementation here
}

int gridTraveler(int m, int n) {
    std::unordered_map<int,int> memo = {};
    return gridTraveler(m, n, memo);
}

推荐阅读