天天看點

c++ new一個結構體_c++中的動态數組和動态結構體、string類學習總結

大家周末好,今天給大家分享c++中的動态數組和動态結構體以及string類的學習總結,在今天寫文章之前,給大家分享一個可以面試刷題的地方,如果大家平時沒啥事情或者離面試時間比較久,可以嘗試去牛客網裡面去刷題,如下圖所示:

c++ new一個結構體_c++中的動态數組和動态結構體、string類學習總結

圖1

題庫裡面有企業面試題目,面試裡面有一些網友的面試經驗分享,對于缺乏面試經驗的網友,我覺得非常不錯的機會來提升自己。

一、動态數組:

1、面向對象程式設計與傳統的過程性程式設計的差別:

面向對象程式設計它主要是強調在運作階段(不是在編譯階段)進行決策。運作階段指的是程式正在運作,編譯階段指的是編譯器将程式組合起來時;一個比較形象的比喻:運作階段就好比度假時,選擇參觀哪些景點取決于天氣和自己的心情(這種方式就比較靈活了);而編譯階段更像是不管什麼情況下,都堅持之前的決定(這種方式的話就比較死闆了)。

2、動态數組的建立:

(1)首先你的弄明白啥動态數組,從字面意思來看,就是這個數組是動态的,可控制的,也就是我們剛才提到的面向對程程式設計,它側重程式在運作階段,這也就是意味着我們動态數組,在運作階段的時候,如果程式員确實需要它,程式員就可以來建立它;如果不需要它,那麼程式員就不用來建立它。

(2)建立動态數組通用書寫格式:

我們來看實際例子:

這裡還用兩種方式來建立動态數組:第一種就是使用模闆類vector;第二種使用模闆類array(更友善,更加安全)

(3)回收使用new運算符配置設定的記憶體空間:

注:我們在c語言裡面使用malloc配置設定記憶體大小,使用free來釋放配置設定的記憶體大小。

同時我們這裡可以看到有一個"[]",這個就是要注意一個使用規則了:如果使用new時,帶"[]",則使用delete釋放記憶體也要帶;反之亦然。下面是錯誤的使用例子:

二、動态結構體:

1、建立動态結構體:

動态結構體的概念和動态數組的概念了解一緻。我們現在來看一下動态結構體時如何被建立的:

這裡将把存儲inflatable(表示結構體類型)結構的一塊可用記憶體的位址配置設定給指針p了。實際例子如下:

三、string類:

大家應該都知道在c語言裡面我們是沒用用來表示字元串的資料類型的關鍵字的,但是我們在c++裡面可以使用string關鍵字來表示字元串資料類型。以前在c語言裡面我們要表示字元串的話,一般是下面這種方法來表示:

現在我們在c++裡面就可以直接使用string來表示一個字元串定義了,不用用數組法那麼麻煩了:

我們可以看到使用string來定義字元串,可以把它指派給别的字元串變量(正确的說應該是string類執行個體化的一個對象),同時要通路字元串裡面的元素,也可以采用數組下标的方式來通路;同時也可以進行字元串合并:

c++ new一個結構體_c++中的動态數組和動态結構體、string類學習總結

繼續閱讀