行列の対角線を格納するSTLベクトルがあります。私が実装している特定の数学的規則は、元のベクトルを取得し、そのベクトルのコピーをそれ自体に連結するだけで、テンソル積の対角線の新しい行列を生成できることを示しています(サイズが2倍になり、値は1/の後に繰り返されます) 2 * size())。
私は次のコードを書きました:
std::vector<int> aVec;
for (int k = 0; k < aVec.size(); k++) aVec.insert(aVec.end(), aVec[k]);
しかし、これを試してみると、セグメンテーション違反が発生します。aVecのコピーを作成し、それを挿入「値」として使用し、ループ引数のsize()に使用すると、機能しますが、これらの両方を実行する必要があります(そうでない場合でも、セグメンテーション違反)。
この実装が機能しない原因となる下で何が起こっているのかを誰かが説明できますか?