1. 程式人生 > >關於二維陣列和vector的那些事

關於二維陣列和vector的那些事

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的用法

這次主因素分析程式碼的整合,由於對上述基本演算法和原始碼的資料結構的不清楚花費了很多時間,深深體悟基礎不牢地動山搖,寫於此以自勉!

相關推薦

關於陣列vector那些

1.二維vector變二維陣列 <pre name="code" class="cpp"><span style="font-size:18px;">vector<vec

vector陣列不用vector

#include <iostream> #include<iomanip> using namespace std; int main() { int row; int col; cin>>row>>col; //為

“全棧2019”Java第三十一章:陣列陣列詳解

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第三十一章:二維陣列和多維陣列詳解 下一章 “全棧2019”Java第三十二章:增強for迴

Java 學習筆記 陣列物件陣列

定義二維陣列 int[][] a = new int[4][5]; 可以不指定列數 int[][] a = new int[4][]; 獲取行 int i = a.length(); 如果使用第一個例子,這裡就是返回4 獲取列 int i = a[0].length();使用第一個例子,這裡就是

初見dfs,用dfs計算陣列

原題的網址(一道很水的題) 程式碼如下 #include<bits/stdc++.h> using namespace std; int sum=0,num[100][100],jz[100][100],n; void dfs(int x,int y) { for(int

劍指off:在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣一個二維陣列和一個整數,判斷陣列中是否含有該整數

題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 從左下角x開始尋找,x為此列最大數字,此行最小數字。如果目

java 劍指offer 第一題:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

我用了三種解法,全部都可以在牛客網上通過。 第一種解法是最簡單的,遍歷整個二維陣列找那個整數; 第二種和第三種都是根據二維陣列有序的特性進行查詢,第二種方法是從左下角開始查詢,大於左下角刪除一行,小於左下角刪除一列;第三種是從右上角開始查詢,大於右上角刪除一行,小於右上角的

C/C++中陣列指標關係分析

        在C/c++中,陣列和指標有著密切的關係,有很多地方說陣列就是指標式錯誤的一種說法。這兩者是不同的資料結構。其實,在C/c++中沒有所謂的二維陣列,書面表達就是陣列的陣列。我猜想是為了表述方便才叫它二維陣列。       在本文中,我也就叫它二維陣列。在C/C

題目:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。(Python實現)

''' 題目: 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 ''' '''

·在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

題目 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 分析 例如這樣一個數列:   要在裡面查詢是否存在7。按照平常的思維

Python實遍歷二維陣列題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

在準備國網的過程中,仍要刷題,程式設計題。痛並快樂著。喜歡Python語言,所以用Python進行敲磚頭。劍指offer題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列

陣列指標指標陣列的區別; 陣列指標的關係

指標和陣列的區別 C++/C程式中,指標和陣列在不少地方可以相互替換著用,讓人產生一種錯覺,以為兩者是等價的。   陣列要麼在靜態儲存區被建立(如全域性陣列),要麼在棧上被建立。陣列名對應著(而不是指向)一塊記憶體,其地址與容量在生命期內保持不變,只有陣列的內容可以改變。

C++——陣列物件陣列

6.3 二維陣列的宣告和引用 宣告:資料型別 識別符號[常量表達式1][常量表達式2];int a[3][4]; 表示a為整型二維陣列,其中第一維有3個下標(0~2),第二維有4個下標(0~3),陣列元素12個,可以用來存放3行4列的整型資料表格。可以理解為: a[0]—

大一寒假訓練一(陣列結構體)

基礎題就不解釋了,稍微要思考的題再註釋一下。 nefu 951 二維矩陣最大值 #include <stdio.h> int main() { int i,j,m,n,max1,max2,max,a[100][100]; while(scanf("%d

牛客網劍指offer—題目一在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數

在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路:因為是隻需判斷有無該整數,所以用bool函式,返回false或true      假設是這樣一個數組