中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++中的動態數組和動態結構體、string類舉例分析

發布時間:2021-11-26 13:40:09 來源:億速云 閱讀:565 作者:iii 欄目:大數據

這篇文章主要介紹“c++中的動態數組和動態結構體、string類舉例分析”,在日常操作中,相信很多人在c++中的動態數組和動態結構體、string類舉例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”c++中的動態數組和動態結構體、string類舉例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、動態數組:

1、面向對象編程與傳統的過程性編程的區別:

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

2、動態數組的創建:

(1)首先你的弄明白啥動態數組,從字面意思來看,就是這個數組是動態的,可控制的,也就是我們剛才提到的面向對程編程,它側重程序在運行階段,這也就是意味著我們動態數組,在運行階段的時候,如果程序員確實需要它,程序員就可以來創建它;如果不需要它,那么程序員就不用來創建它。

(2)創建動態數組通用書寫格式:

type_name *pointer_name = new type_name [num_elements]
 

我們來看實際例子:

//new運算符返回第一個數組元素的地址,并把該地址賦給指針p
int *p = new int[10];

 

這里還用兩種方式來創建動態數組:第一種就是使用模板類vector;第二種使用模板類array(更方便,更加安全)

#include <vector>

using namespace std;
int n;
cin>>n;
vector(int) vi(3);
vi[0]=1;
vi[1]=2;
vi[2]=3

 
#include <array>

using namespace std;

array<int ,5> ai = {1,2,3,4,5};
 

(3)回收使用new運算符分配的內存空間:

delete [] p;
 

注:我們在c語言里面使用malloc分配內存大小,使用free來釋放分配的內存大小。

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

int *pt = new int;
short *ps = new short[34];
delete [] pt;  //error
delete ps; //error
 

二、動態結構體:

1、創建動態結構體:

動態結構體的概念和動態數組的概念理解一致。我們現在來看一下動態結構體時如何被創建的:

inflatable *p = new inflatable;
 

這里將把存儲inflatable(表示結構體類型)結構的一塊可用內存的地址分配給指針p了。實際例子如下:

strcut ti{
int good;
int bad;

}

ti p =  new ti;

 

三、string類:

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

char a[12] = "hello world";

 

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

string str1;
string str2 = "hello world";

str1=str2;

str2[1] = e;
 

我們可以看到使用string來定義字符串,可以把它賦值給別的字符串變量(正確的說應該是string類實例化的一個對象),同時要訪問字符串里面的元素,也可以采用數組下標的方式來訪問;同時也可以進行字符串合并:

str3=str1+str2;

到此,關于“c++中的動態數組和動態結構體、string類舉例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衢州市| 饶平县| 牙克石市| 库尔勒市| 宿州市| 三明市| 长海县| 论坛| 临夏县| 平武县| 德保县| 当阳市| 邢台市| 富平县| 绥芬河市| 焉耆| 内乡县| 教育| 宜兴市| 平舆县| 大荔县| 桓仁| 永吉县| 招远市| 元阳县| 城步| 普定县| 禄丰县| 凤山市| 库尔勒市| 隆化县| 梅河口市| 文化| 桃园市| 泸定县| 中山市| 芜湖市| 巴青县| 海安县| 金阳县| 津南区|