首页 > 解决方案 > 参数上缺少默认值

问题描述

我不断收到此错误。

错误:参数“m”缺少默认参数

请有人解释为什么我会得到这个?以及如何解决?

   int func(vector<int>& arr, int l, int r,int res = 0,unordered_map<int,int>& m)
    {
    if (l > r) 
    { 
        m[res] ++;;
        return; 
    } 
  
    // Subset including arr[l] 
    func(arr, l+1, r, res || arr[l],m); 
  
    // Subset excluding arr[l] 
    func(arr, l+1, r, res,m); 
    }
    
    int subarrayBitwiseORs(vector<int>& arr) {
         unordered_map<int,int> m;
         func(arr, 0, arr.size() - 1,0, m);
         return (m.end()--)->first;
      
    }

标签: c++

解决方案


您不能将没有默认值的参数放在具有默认值的参数之后。因此,您可以像这样修复它:

int func(vector<int>& arr, int l, int r, unordered_map<int,int>& m, int res = 0)


推荐阅读