关于二维数组和vector<vector<>>的那些事

来源:互联网 发布:熊野油脂马油 知乎 编辑:程序博客网 时间:2024/05/17 03:04

1.二维vector变二维数组

<pre name="code" class="cpp"><span style="font-size:18px;">vector<vector<double> > Num(m);for(int i=0;i <m;i++)   Num[i].resize(n);</span>

经过这样的变化,成为m*n矩阵,可以对其进行相关的数组操作;

2二维数组的转置问题

<span style="font-size:18px;"> for(int   i=0;i <m;i++)  for(int   j=0;j <n;j++)  Num[i][j]=SampleMatrix[j][i]; //转置</span>

3vector<vector<>>的初始化

<pre name="code" class="cpp"><span style="font-size:18px;">//用两个矩阵拼接对</span><span style="font-size:18px;">vector<vector<>>的初始化;</span>

for (int i=0;i<nItr;i++){vector<double> objTemp = vParams[i];for (int n=0;n<nvObjs;n++){objTemp.push_back(vOutputs[i][n]);}SampleM.push_back(objTemp);}
//push_back的用法
<pre name="code" class="cpp"> for(int i=0;i<m;i++){<pre name="code" class="cpp"><pre name="code" class="cpp">             float temp=0;     for(int j=0;j<n;j++){
                   temp+=Num[i][j];   SumX.push_back(temp);}         }
        }
 


总之不论二维数组还是vector<vector<>>的操作,核心思想就是"转化",高维向低维转化;另外注意学习push_back的用法

这次主因素分析代码的集成,由于对上述基本算法和源代码的数据结构的不清楚花费了很多时间,深深体悟基础不牢地动山摇,写于此以自勉!



0 0
原创粉丝点击