我正在學習C++閱讀Stroustrup的書,在我看來,這個主題不是很清楚(數組)。從我所瞭解C++有(如德爾福)兩種陣列:動態和靜態數組
靜態數組被聲明如下
int test[3] = {10,487,-22};
動態數組被稱爲矢量
std::vector<int> a;
a.push_back(10);
a.push_back(487);
a.push_back(-22);
我已經看到有關這方面的答案(並且裏面有很多線條和概念),但他們沒有向我闡明這個概念。
從我所瞭解vector
小號佔用更多的內存,但他們可以改變它們的大小(動態,其實)。數組在編譯時具有固定的大小。
在章節Stroustrup說,矢量是安全的,而數組不是,但沒有解釋原因。我確實相信他,但爲什麼?記憶的位置是否與安全有關? (堆/棧)
我想知道爲什麼我使用載體,如果他們是安全的。
這是一個非常廣泛的討論,如果你問使用std :: vector,數組和指針的優點和陷阱。 –
在我的代碼中,我將使用向量總是和數組,只有當我發現有人在舊版本中使用它們時。但我想知道爲什麼 –
std :: vector是一個很好的機器,已經接管了以前用數組解決的大多數任務。你會想研究std :: vector是如何設計的以及爲什麼。這包括資源管理(3/5規則)以及算法行爲。 –