C 第6版學習小結之第五章 迴圈和關係表示式

2021-10-09 03:14:02 字數 1985 閱讀 1526

迴圈和關係表示式

使用for迴圈訪問字串。size()獲得字串中的字元數;即定義乙個字串a,a.size()得到字串大小。

型別別名。typedef typename aliasname將後者作為前者的別名

c++新增了基於範圍的for迴圈。這簡化了一種常見的迴圈任務:對陣列(或容器類,如vector和array)的每乙個元素執行相同的操作,如下:

double prices[5]

=;for(

double x : prices)

該迴圈顯示陣列中的每個值

for

(double

&x : prices)

符號&表明x是乙個引用變數,這種宣告讓接下來的**能後修改陣列的內容,而第一種語法不能。

cin在讀取char值時(cin >> ch),與讀取其它基本型別一樣,cin將忽略空格和換行符。cin.get(ch)讀取輸入中的下乙個字元(包括空格),並將其賦給變數ch,使用這個函式呼叫替換cin >> ch,解決上述問題。

在c語言中,要修改變數的值,必須將變數的位址傳遞給函式。但是cin.get(ch)傳遞的是ch,而不是&ch。在c語言中這樣的**無效,但在c++中有效,只要函式將引數宣告為引用即可。引用是c++在c語言基礎上新增的一種型別。標頭檔案iostream將cin.get(ch)的引數宣告為引用型別,因此該函式可以修改其引數的值。

在c語言中,如果函式接受char指標和int引數時,則使用該函式時,不能只傳遞乙個引數(型別不同)。但在c++中,可以這樣做,因為該語言支援被成為函式過載的oop特性。

函式過載允許建立多個同名函式,條件是他們的引數列表不同。函式過載允許對多個相關的函式使用相同的名稱,這些函式以不同方式或針對不同型別執行相同的基本任務。

檢測輸入末尾。使用eof來檢測檔案尾並將這種資訊告知程式。如果檢測到eof,cin.eof()將返回bool值true,否則返回false。

常見的字元輸入做法。每次讀取乙個字元,直到遇到eof的輸入迴圈的基本設計如下:

cin.

get(ch)

;while

(cin.

fail()

==false

)

在c++中,c語言中的getchar()和putchar()仍然適用,只需包含標頭檔案stdio.h。也可以使用istream和ostream類中類似功能的成員函式。不接受任何引數的cin.get(),即ch = cin.get();該函式的工作方式與c語言中的getchar()相似,將字元編碼作為int值返回;而cin.get(ch)返回乙個物件,而不是讀取的字元。同樣,可以使用cout.put()函式來顯示字元;cout.put(ch)。

當函式到達eof時,函式cin.get()將沒有可返回的字元。相反,cin.get()將返回乙個用符號常量eof表示的特殊值。eof值必須不同於任何有效的字元值,通常被定義為-1。因為沒有ascll碼為-1的字元,但並不需要知道實際的值,而只需在程式中使用eof即可。

char ch;

cin.

get(ch)

;whlie (cin.

fail()

==false

)

可以使用int ch,並用cin.get()代替cin.get(char),用cout.put()代替cout,用eof測試代替cin.fail()測試:

int ch;

ch = cin.

get();

while

(ch !=

eof)

get()的主要用途是能夠將stdio.h的getchar()和putchar()函式轉換為iostream的cin.get()和cout.put()方法。只要用標頭檔案iostream替換stdio.h,並用作用相似的方法替換所有的getchar()和putchar()即可。

第五章學習小結

1 第五章主要學習了與樹相關的知識,從二叉樹拓展到一棵普通的樹,再從一棵普通的樹拓展到哈夫曼樹,再從樹拓展到森林的概念。5 1節學習了樹和二叉樹的定義,對節點,根節點,葉子結點,深度,度等概念進行了初步的了解。5 4節了解了與二叉樹相關的一些性質,其中引出了完全二叉樹與滿二叉樹的概念,從這一節開始也...

第五章學習小結

一 小結 1.二叉樹 定義與性質 1 二叉樹有五種基本形態 2 在二叉樹的 第 i 層上至多有 2 i l 個結點 i 1 3 深度為 k 的 二叉樹至多有 2 k 1 個結點 k 1 4 葉子結點數 度為2結點數 1 5 滿二叉樹是完全二叉樹的一種 還有更常見的非完全二叉樹 二叉樹的儲存與遍歷 1...

第五章學習小結

第五章我們學習了新的資料結構,也就是樹。相比較與之前學的內容,我覺得樹更加的複雜。在學習二叉樹的遍歷的過程中,在樹的操作過程中很多重複操作都是要通過遞迴實現的,我對遞迴的思想也更加深刻明了。我們也學習了許多二叉樹的性質,比如 二叉樹的性質 1 二叉樹的第i層上至多有2 i 1 個結點 2 深度為k的...