您好,登錄后才能下訂單哦!
這篇文章主要介紹“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類舉例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。