0

これが私のコードです:

vector<vector<int>> tranches_max(vector<vector<int>> x)
{
   vector<vector<int>> y;
   y[0].swap(x[0]);
   return y;
}
int main() {

vector<vector<int>> x=
{
      {2, 1, 0, 2},
      {0, 1, 0, 3},
      {1, 3, 0, 0},
      {0, 2, 2, 0},
    };
  for (vector< vector<int> >::size_type u = 0; u < x.size(); u++) 
     { for (vector<int>::size_type v = 0; v < x[u].size(); v++) 
       { cout << x[u][v] << " ";
       }
       cout <<endl;
     }
 vector<vector<int>> y= tranches_max(x);    
 for (vector< vector<int> >::size_type u = 0; u < y.size(); u++) 
 { for (vector<int>::size_type v = 0; v < y[u].size(); v++) 
{ cout << y[u][v] << " ";
    }
    cout <<endl;
  }
return 0;
}

私のコードはエラーを生成しませんが、クラッシュします..コピーが問題だと思います..何か考えはありますか?

ありがとうございました。

4

2 に答える 2

3

何をしようとしているのかわかりませんが、関数では vector の範囲外tranches_maxの要素にアクセスします。ベクトルを空にする空のコンストラクターで y を構築します。たぶん、初期サイズで y を作成する必要がありますか?y[0]y

于 2013-11-05T14:50:50.023 に答える
0
  1. Y は空です
  2. このコードは、ストリーム演算子になる >> の間にスペースがないため、コンパイルしないでください。
于 2013-11-05T14:53:05.247 に答える