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