二维数组元素压进到二维容器中
二维数组元素压入到二维容器中
初始化信息:
构造函数:
将这个二维数组元素压入到二维容器中,代码如下:
编译的时候没有错误,可是运行调试的时候错误,出现异常,数据压不进去。 望高手们帮忙看看!
------解决方案--------------------
for (int i=0; i<6; i++)
{
for (int j=0; j<6; j++)
{
m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]);
}
}
声明的是vector<vector<double> > m_dblvecMatrix; //系数矩阵
这种压法肯定有问题了,这样是二维数组中数据一个个压进去的。而你的类型是vector<vector<double> >
也就是vector<double>类型的
------解决方案--------------------
m_dblvecMatrix[i].resize(6,0.0);这句不需要。
------解决方案--------------------
去掉如下语句
for (int i=0;i<6;i++)
{
m_dblvecMatrix[i].resize(6,0.0);
}
或者
m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]);
改为:
m_dblvecMatrix[i][j] = CmatrixLeft[i][j];
------解决方案--------------------
这样试试
初始化信息:
- C/C++ code
vector<vector<double> > m_dblvecMatrix; //系数矩阵 //初始化系数矩阵 double CmatrixLeft[6][6] = {{0.56827279,0.00407769,0.158461339,0.000732049,0.007614832,-0.000760258}, {-0.009595896,-0.715790491,-0.004614627,0.010786434,-0.00055647,-0.000170928}, {-0.000450047,-0.02671666,-0.697471736,-0.000647249,0.002850714,-0.000221244}, {0.006224745,0.043482445,-0.037984959,0.023356307,-0.003112434,-0.000821502}, {0.030465765,0.016188658,0.016496178,-0.003668693,-0.023773707,0.000498324}, {0.026011337,0.131331653,-0.008425297,-0.002397693,-0.001002133,0.050552649}};
构造函数:
- C/C++ code
m_dblvecMatrix.resize(6); for (int i=0;i<6;i++) { m_dblvecMatrix[i].resize(6,0.0); }
将这个二维数组元素压入到二维容器中,代码如下:
- C/C++ code
for (int i=0; i<6; i++) { for (int j=0; j<6; j++) { m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]); } }
编译的时候没有错误,可是运行调试的时候错误,出现异常,数据压不进去。 望高手们帮忙看看!
------解决方案--------------------
for (int i=0; i<6; i++)
{
for (int j=0; j<6; j++)
{
m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]);
}
}
声明的是vector<vector<double> > m_dblvecMatrix; //系数矩阵
这种压法肯定有问题了,这样是二维数组中数据一个个压进去的。而你的类型是vector<vector<double> >
也就是vector<double>类型的
------解决方案--------------------
m_dblvecMatrix[i].resize(6,0.0);这句不需要。
------解决方案--------------------
去掉如下语句
for (int i=0;i<6;i++)
{
m_dblvecMatrix[i].resize(6,0.0);
}
或者
m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]);
改为:
m_dblvecMatrix[i][j] = CmatrixLeft[i][j];
------解决方案--------------------
这样试试
- C/C++ code
#include<iostream> #include <vector> using namespace std; vector<vector<double> > m_dblvecMatrix; //系数矩阵 //初始化系数矩阵 double CmatrixLeft[6][6] = {{0.56827279,0.00407769,0.158461339,0.000732049,0.007614832,-0.000760258}, {-0.009595896,-0.715790491,-0.004614627,0.010786434,-0.00055647,-0.000170928}, {-0.000450047,-0.02671666,-0.697471736,-0.000647249,0.002850714,-0.000221244}, {0.006224745,0.043482445,-0.037984959,0.023356307,-0.003112434,-0.000821502}, {0.030465765,0.016188658,0.016496178,-0.003668693,-0.023773707,0.000498324}, {0.026011337,0.131331653,-0.008425297,-0.002397693,-0.001002133,0.050552649}}; int main() { for (int i=0; i<6; i++) { vector<double>tmp; for (int j=0; j<6; j++) { tmp.push_back(CmatrixLeft[i][j]);//m_dblvecMatrix[i].push_back(CmatrixLeft[i][j]); } m_dblvecMatrix.push_back(tmp); } return 0; }
------解决方案--------------------
微笑,啥意思?搞定了?
如果没搞定,也不要老盯着这几条代码看,看看别的地方。也许把手头的书全看一遍,工程的代码全看一遍,就知道问题在哪了。
------解决方案--------------------