2017-07-07 16 views
-1

以下の参照用法で何が間違っていて、どのような用法が正しいですか。私は小さなサイズのベクトルへの参照を割り当てたい。'sm'がこのスコープで宣言されていません

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; 

答えて

7

この部分には何も問題はありません。しかし、その範囲はifまたはelse部分のみであるため、後でsmを使用することはできません。

あなたはこのようなものを使用する必要があります

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

またはRとPでそれを宣言し、それを基準として、動作しない場合は、他の – Shirkam

+0

@Shirkamでそれを初期化します。参照は初期化されなければならず、別のオブジェクトにリダイレクトすることはできません –

+0

ああ、私はそれを逃しました。あなたのアノテーションをありがとう。 – Shirkam

関連する問題