gpt4 book ai didi

c++ 参数与 ref 问题的兼容性

转载 作者:行者123 更新时间:2023-11-28 06:04:22 24 4
gpt4 key购买 nike

我目前正在使用模板编写 C++ 矩阵。我有一个 vector 构造函数,它获取行数、列数和一个长度为 (num-of-cols*num-of-rows) 的长 vector 。

这是当前的构造函数代码:

Matrix<T>(unsigned int rows, unsigned int cols, const vector<T>&cells)
{
this->rowsNum = rows;
this->colsNum = cols;

int j = 0;
for(int i = 0; i < rowsNum; i++)
{
for(int k = 0; k < colsNum; k++)
{
this->mat[i][k] = cells[j];
j++;
}
}

}

这是我从 main 调用函数:

int main()
{
const vector<int> v {1, 2, 3, 4, 5};
Matrix<int> m {1, 5, v};
cout << m << endl;

}

每次我运行它,程序都会在构造函数中间崩溃,在行中:

this->mat[i][k] = cells[j];

调试器还向我展示了 C++ 页面“STL_vector.h”,在这些行中:

  reference
operator[](size_type __n) _GLIBCXX_NOEXCEPT
{ return *(this->_M_impl._M_start + __n); }

我不知道该怎么办。我相信它是 const 和 ref 兼容性,但是我不知道怎么了。

最佳答案

您需要调整您的变量mat(如果它是vector)或new到正确的 大小。如果该内存尚未分配,则不能分配给 mat 中的那些索引。

关于c++ 参数与 ref 问题的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com