小编bay*_*wer的帖子

向量的自动参考?

i以下代码不会改变for 循环中的内容:

class Solution {
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        if (target == 0) {return vector<vector<int>>{{}};} 
        else if (!candidates.size() || target < 0) {return vector<vector<int>>();}
        else {
            vector<vector<int>> with = combinationSum(candidates, target - candidates[0]); 
            vector<int> new_vector(candidates.begin() + 1, candidates.end());
            vector<vector<int>> without = combinationSum(new_vector, target);
            for (auto i : with) {i.push_back(candidates[0]);}

            with.insert(with.end(), without.begin(), without.end());
            return with;
                                        
        }
    }
};

Run Code Online (Sandbox Code Playgroud)

但是,如果我将其更改为auto& i : with ...,它就会起作用。有理由吗?我认为只有当您使用指向的对象或者您不希望变量(在本例中i)在本地范围内更改时,引用才相关。

c++ iterator stl reference range-based-loop

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

标签 统计

c++ ×1

iterator ×1

range-based-loop ×1

reference ×1

stl ×1