第五單元 陣列 總結

2021-10-01 16:47:49 字數 2450 閱讀 9412

第一課  一維陣列的定義

cin >> h0 >> h1 >> h2 >>...>> h49;//程式中是不能用省略號來表示的。

顯然這樣的程式**冗長繁瑣,程式設計效率差,因此引入陣列的概念。

陣列  陣列就是一組相同型別的變數。他們往往都是為了表示同一批物件的統一屬性。

例如,for (i=0;i<=49;i++) cin>>h[i];

陣列本身是變數,陣列經常應用在大批量同一型別的資料處理任務中。以減少**的長度。

1.一維陣列的定義

格式如下  型別識別符號(原資料) 陣列名(變數型別) [常量表示式];

其中型別識別符號可以是任何基本資料型別,也可以是結構體等構造型別,相同型別的陣列可以一起定義。

陣列名必須是合法的識別符號。

常量表示式的值即為陣列元素的個數。

int d[50],g[100];

int  a[5*10];

#define n 50;

int  b[n];

以上幾個定義也是允許的。

2.一維陣列的元素引用

陣列定義好後,就可以引用陣列中的任意元素,引用格式為   陣列名[下標]  例如,h[5]  陣列的下標從0開始,h為陣列名,[5]表示的是第六個元素。

下標只能為整型常量或整型表示式值必須在陣列定義的下標範圍內,否則會出現下標越界錯誤。

需要特別注意,不能一次引用整個陣列,只能逐個引用陣列中的單個元素。

3.一維陣列的儲存結構

陣列在計算機記憶體單元中是連續儲存的。程式一旦執行到陣列的定義語句,就會開闢出若干位元組的記憶體單元。整個陣列所佔的記憶體大小等於陣列元素型別的大小乘以陣列元素的個數。是c++還提供了乙個sizeof函式,可以直接求出乙個陣列所佔的記憶體空間。

根據陣列在記憶體單元中的首位址和陣列型別,可以計算出該陣列中任意第i個元素的起始位址。

第二課   一維陣列的輸入與輸出

由於陣列的操作只能逐個引用單個元素,所以一維陣列的輸入輸出等操作都是採用迴圈語句結合下標變化逐個元素進行。

批量資料一次性輸入到一維陣列中的方法

1.鍵盤讀入

int  h[100];

for (i=0;i<100;i++)  cin>>h[i];

2.直接賦值

int  h[100],;

for(i=0;i<100;i++)  h[i]=0;

c++裡還提供了兩個函式給陣列整體賦值

1.memset 函式  給陣列按位元組進行賦值,一般用在char型陣列中。如果是int型別的陣列,一般賦值為0和-1。使用前需要包頭檔案 #include。

2.fill函式  給陣列按元素進行賦值,可以是整個陣列,也可以是部分連續元素,可以賦任意值。使用前需要包頭檔案 #include。

此外,睡覺覺還支援在定義陣列的同時給所有或部分元素賦值。

int  a[10]=;

int a[10]=;//部分賦初值,後面的元素自動初始化為零。

int  a[ ]=;//不定義陣列長度,直接根據賦值個數定。

第三課   一維陣列的插入刪除

需要在陣列中插入乙個元素或刪除陣列中的某乙個元素,稱為陣列的插入操作,或者刪除操作,插入或者刪除乙個元素需要先找到插入或者刪除的位置,將該位置以後的元素依次往後以或者是依次往前移一位注意要依次進行操作,覆蓋原來位置上的元素。

第四課 一維陣列的查詢統計

一維陣列的查詢操作就是在一維陣列中查詢有沒有某個元素,它的值等於指定的值x。

查詢操作的結果可能是乙個沒找到,找到乙個或者多個。

常見的查詢演算法有  順序查詢   按照從前往後的順序,將陣列中的元素依次於要找的數x進行比較,如果陣列中的元素是有序的,遞增或者遞減,也可以採用二分查詢。

二分查詢    又稱折半查詢,其優點是比較次數較少,查詢速度較快。

while (left <= right),};//分行初始化

int  a[2][3]=;// 部分行初始化

二維陣列的儲存及元素引用

陣列名[下標1][下標2]

二維陣列的輸入與輸出   

二維陣列的輸入輸出操作也是針對每個元素進行,結合兩個維度的下標變化,用迴圈巢狀實現。

第九課  數字方陣

數字方陣就是乙個行列數相等的二維陣列,其中每個元素都是數字解決數字方陣問題一般有兩種方法,解析法和模擬法。

解析法就是找出每個方陣元素f[i][j]與i,j和陣列規模n的通項公式,然後直接用兩重迴圈給陣列元素賦值比較容易,一般用在初始化等場合。  

模擬法就是把數字方陣看成乙個動態的天數過程,把n平方個數依次填入陣列中,每填好乙個數就定位好下乙個數的位置i和j。

第十課   字元陣列

陣列中每個元素都是乙個字元,這樣的陣列稱為字元陣列,一維字元陣列又稱為字串。

用cin煮個元素輸入 cin >> letter[0]不含空格

需要注意的是在使用scanf的%格式或gets讀入字串時,會在字串末尾自動新增乙個空字元'\0',使用getchar等方法讀入字串時,則要在字串後手工加'\0'。

第五單元陣列總結

知識點總結 第一課1.陣列就是一組相同型別的變數,他們往往都是為了表示同一批物件的統一屬性。陣列可以是一維的,也可以是二維或多維的。2.在c 中使用一組陣列時,一般是從零開始編號,h i 就表示,第i 1同學的身高,u稱為 下標變數 for i 0 i 49 i cin h i 這樣表示 不冗長 3...

Linux 第五單元總結

1.使用者理解 使用者就是系統使用者的身份 在系統中使用者儲存為若干竄字元 若干個系統配置檔案 使用者資訊涉及到的系統配置檔案 etc passwd 使用者資訊 使用者 密碼 uid gid 說明 家目錄 使用者使用的shell etc shadow 使用者認證資訊 etc group 組資訊 組名...

5 第五單元 Fragment高階

fragment通訊 四.多個fragment巢狀 contentfragment fragment newcontentfragment fragmenttransaction ft getsupportfragmentmanager begintransaction ft.replace r i...