前言
在處理資料時經常會需要用到 struct
方式,將許多不同型態但屬於同一筆之下的資料包在一起
這麼做的同時通常也會需要好幾筆資料,每一筆都包著許多東西,舉例來說像通訊錄有好幾筆,每筆都包含了姓名、電話、甚至性別等等的
概念
以前寫C的時候宣告struct array就是直接開global,然後大小先開個1.2千,就算大二開始接觸C++,碰到struct array也還是這樣幹
大概是長下面這樣子
1 | struct phoneBook{ |
除非處理的資料很少(<10萬筆),不建議在C++這樣使用,尤其當你無法從宣告就確定需要儲存幾筆資料的時候
至於C的話,我不是很清楚如何resize了,這可能牽扯到在C裡面設計動態陣列了(也就是C++已經幫你寫好提供給你的東西)
現在開始認真寫C++之後,發現了許多很有效率的宣告方式以及library function
難怪古人說 “不要重造車子的輪子”
C++的特色就是vector (dynamic array),並且支援template資料型態的結構 <>
在C++可以使用struct,需要使用struct array時,就直接用vector然後包住struct
用vector的好處就是你可以先宣告好array,等確定資料有幾筆在resize就好,或是一個一個push
大概如下
1 | struct phoneBook{ |