[問題] vector裡裝入巢狀class的寫法?

看板C_and_CPP (C/C++)作者 (米提)時間15年前 (2011/03/22 14:59), 編輯推噓2(207)
留言9則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小的目前在寫一個程式,需要建立一個可供查詢的表。 一直以來都是寫C,用傳統的array,這次想要使用vector遇到了點問題。 爬了幾天板,試了幾種方式。= =a 因為書上都是簡單的例子,所以...。 舉例,結構大概如下,在取值時會遇到問題。 因為對C++的觀念還不是很清楚,歡迎大家指教。 我的程式主要是在處理電路的問題。這個建表出來是要讓另一個輸入查表用。 看了書本說,若是結構較大的物件,建議使用LIST優於VECTOR,或者使用指標。 或者是有大大建議我使用別的結構。 class chapter{ //被包的那個不知道該怎麼找到他的值 public: string chap_name; int paragraph; int pages; }; class book{ //book可能會有幾萬筆資料。 public: string name; int all_pages; //class chapter; 修改 cahpter ch01; }; vector <book> book_table; book temp; int main(){ cin >> temp.name; cin >> temp.all_pages; cin >> temp.chapter; //這裡該怎麼寫比較對呢?因為它是一個class chapter的數量,也是一個變量。 book_table.push_back(temp.name,temp.allpages,temp.chapter); //一直出錯QQ 還是應該使用..? book_table[0].push_back(...同上...) //如果確定一筆可讀取後,我想說,N筆可能是宣告一個iterator去跑begin()到end()。 //但是現在連一筆都不知道怎麼抓Q__________Q return 0; }//end main 餵入的資料(Input): //舉例,當我之後出現了新的input,可能是一個book name與chap_name, //然後我需要依照book name去找到他的all_pages與chpter內的資訊。 //eg. input "C++ primer" .可以抓到 all_pages = 1267, chapter 的內容 第一章 概觀 第二章 c++語言的基本要素 第三章 procedure-base programming . . . 依此類推。 預期的正確結果(Expected Output): 同上。 錯誤結果(Wrong Output): 類似未宣告之類的。 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 這是我的程式非主要的部分= =a,可是就有點搞不定了。 演算法部分反而做起來比較單純,因為希望程式在跑這部分時的時間不要太久。 所以如果大大有建議其他比較不占空間或時間的寫法也很歡迎。非常感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.10

03/22 15:21, , 1F
為什麼 class book 裡面有 class chapter; ?
03/22 15:21, 1F

03/22 15:21, , 2F
class book { chapter ch; } 應該是類似這樣的寫法吧?
03/22 15:21, 2F

03/22 15:22, , 3F
這整個看起來是對C++不熟,不是只對vector不熟
03/22 15:22, 3F

03/22 15:28, , 4F

03/22 15:28, , 5F
不是很好的寫法,但大概就是這個樣子
03/22 15:28, 5F

03/22 18:31, , 6F
謝謝樓上,的確是對C++很不熟。Orz 初學中~
03/22 18:31, 6F

03/22 22:01, , 7F
我看起來的感覺是連 C都不熟
03/22 22:01, 7F

03/23 01:38, , 8F
cin運算子打反 class沒設public chapter才是型態
03/23 01:38, 8F
為了避免誤導,做了修改。XDDD 打太快沒注意。 程式原本只完成到順利讀寫檔案,建立單層的表單關係,可供查詢。 原本只是想要表達結構的階層關係,所以另打了例子。。 一開始多層型態的宣告,自己是真的不太會用。感謝指教。 → mitiyiyi:噗 抱歉!我的程式有設public,想說舉例打的不夠仔細~ 03/23 14:54

03/23 14:54, , 9F
原本只是想表達結構的,沒有仔細檢查是我的疏忽
03/23 14:54, 9F
※ 編輯: mitiyiyi 來自: 140.112.218.10 (03/23 15:03)
文章代碼(AID): #1DY4Z4Rh (C_and_CPP)
文章代碼(AID): #1DY4Z4Rh (C_and_CPP)