溫馨提示×

溫馨提示×

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

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

c++中的動態(tài)數(shù)組和動態(tài)結構體、string類舉例分析

發(fā)布時間:2021-11-26 13:40:09 來源:億速云 閱讀:558 作者:iii 欄目:大數(shù)據

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

一、動態(tài)數(shù)組:

1、面向對象編程與傳統(tǒng)的過程性編程的區(qū)別:

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

2、動態(tài)數(shù)組的創(chuàng)建:

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

(2)創(chuàng)建動態(tài)數(shù)組通用書寫格式:

type_name *pointer_name = new type_name [num_elements]
 

我們來看實際例子:

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

 

這里還用兩種方式來創(chuàng)建動態(tài)數(shù)組:第一種就是使用模板類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來釋放分配的內存大小。

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

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

二、動態(tài)結構體:

1、創(chuàng)建動態(tài)結構體:

動態(tài)結構體的概念和動態(tài)數(shù)組的概念理解一致。我們現(xiàn)在來看一下動態(tài)結構體時如何被創(chuàng)建的:

inflatable *p = new inflatable;
 

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

strcut ti{
int good;
int bad;

}

ti p =  new ti;

 

三、string類:

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

char a[12] = "hello world";

 

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

string str1;
string str2 = "hello world";

str1=str2;

str2[1] = e;
 

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

str3=str1+str2;

到此,關于“c++中的動態(tài)數(shù)組和動態(tài)結構體、string類舉例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI