'sm'未在此范围内声明

时间:2017-07-07 09:21:09

标签: c++ stdvector

以下参考用法有什么问题,正确用法是什么。我想为较小尺寸的矢量分配一个参考。

vector<int> R = {3,4,6,3,6,2,3};
vector<int> P = {5,9,8};

        if (P.size()>=R.size())
            vector<int>& sm = R;
        else
            vector<int>& sm= P;

1 个答案:

答案 0 :(得分:7)

这部分没有错。但您之后无法使用sm,因为其范围仅为ifelse部分。

你应该使用这样的东西:

vector<int>& sm = (P.size()>=R.size()) ? R : P;