<分区>
我有一个存储矩阵对角线的 STL vector 。我正在实现的某个数学规则告诉我,我可以简单地通过获取原始 vector 并将该 vector 的拷贝连接到自身(它的大小加倍,并且值在 1/之后重复)来生成张量积的对角线的新矩阵2 * 尺寸())。
我写了下面的代码:
std::vector<int> aVec;
for (int k = 0; k < aVec.size(); k++) aVec.insert(aVec.end(), aVec[k]);
但是当我尝试这个时我遇到了段错误。如果我创建 aVec 的拷贝并将其用作插入“值”,以及将其用于循环参数中的 size(),它会起作用,但我必须执行这些两者事情(否则我仍然会遇到段错误)。
任何人都可以解释导致此实现不起作用的底层原因吗?