小编tbl*_*aze的帖子

当返回类型是向量容器时,是否有在 C++ 中返回 Null 的解决方法?

问题是我正在实现一个递归,其中我必须使用NULLvalue 来指定正在遍历的递归分支无效。

NULL但在 C++ 中,当返回类型是容器(在我的例子中是向量容器)时,我们无法返回。

那么有没有解决该问题的方法,或者我是否必须使用其他逻辑?

代码:

#include<iostream>
#include<vector>


std::vector<int> howSum(int target,std::vector<int> in){
    if(target < 0 ) return {-1}; 
    if(target == 0) return {};

    for(int num : in){
        int remainder = target - num ;
        std::vector<int> remResult = howSum(remainder,in);
        if(remResult[0] != -1 || remResult.empty()){
            remResult.push_back(num);
            return remResult;
        }
    }

    return {-1};
}

int main(){

    std::vector<int> v = {2,4,3};
    int targetSum = 8;

    std::vector<int> r = howSum(targetSum,v);

    for(int o : r)
        std::cout<<o<<" ";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我非常感谢所有的建议和解决方案,但我想要的是一个原始的解决方案,不使用更新的 …

c++ recursion c++14

3
推荐指数
1
解决办法
276
查看次数

标签 统计

c++ ×1

c++14 ×1

recursion ×1