看板 C_and_CPP 關於我們 聯絡資訊
我是一個自學C++還不滿一個月的新手 最近在板友的建議之下,去博客來訂了一本《C++ Primer 4/e》中文版 (雖然有不少板友建議直接買最新的5/e,但最後想說還是以中文優先......) 今天拿到後,為了寫題目需要而翻「陣列和指標」一章起來看 結果看了幾頁,反而更混亂了 因為作者對於array 和pointer 的態度幾乎是「深惡痛絕」...... 一直不斷的強調「盡量不要用到array 和pointer」,尤其「不要用C-Style 字串」 並反覆建議讀者以vector 代替array、string 代替C-Style 字串、Iterator 代替pointer 想請問版上的大家,array 和pointer 真的有如此不堪嗎0.0? 如果真的如此,那我大概要再把目前所學的C++重學一遍了...... 感謝~ --
dreamq :+50 +20 +20 +20 +2012/07 21:04
hiphopkai :二樓帥哥12/07 21:05
a23017174 :坐等答案安定。 LOL #1EtsHO_D12/07 21:05
sniper2824 :四樓帥哥12/07 21:06
asdfgh65144 :5樓吃屎12/07 21:06
asdfgh65144 :原PO我站內信給你這種文章就不要佔版面了吧 12/07 21:07
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.73.10
descent:Expert C Programming 花了不少篇福在談 pointer, array 02/07 23:28
tjjh89017:很好用,很難用 02/07 23:29
tjjh89017:簡單來說就是會用就會用得很強大,不會用就覺得很渣 02/07 23:29
《C++ Primer 4/e》裡,「陣列和指標」一章最前面的簡述說: 現今的C++城市應該總是優先使用vectors 和iterators 取代低階的array 和pointer。 一個設計良好的程式只有在極端講求速度的class 的內部實作碼中才使用array 和pointer 在最後面的「本章提要」說: Pointers 和Arrays 對於某些低階任務可能有存在的必要,但我們應該盡量避免使用它們 ,因為他們容易出錯又很難除錯。一般而言應該優先使用程式庫提供的抽象事物而非語言 內建的arrays 和pointers,這一忠告在「多用strings,少用C-Style 字串(亦即以null 結尾之字元array)」這件事上尤其合適。是的,現代化C++程式不該再使用C-Style字串 OAQ
descent:你看過一遍就知道 Lppman 為什麼這麼說了 02/07 23:30
tjjh89017:array&pointer要學不容易學好囉 02/07 23:30
tjjh89017:我剛剛在3F的推文用詞不太對,應該說 02/07 23:31
tjjh89017:會用就會用得很強大,不會用就是只能用到某種地步 02/07 23:32
tjjh89017:這樣比較正確 02/07 23:32
tjjh89017:sorry 02/07 23:32
purpose:不管你自己的程式該不該用,別人寫 pointer 你看不懂 02/07 23:35
purpose:到時候你跟人家說你會 C/C++,人家也不會相信 02/07 23:36
plover:過點時間看進去 std::string 實作就曉得了... 02/07 23:49
coolcomm:string的內部是什麼啊? 類似vector嗎? 02/07 23:56
loveme00835:也要善用 cache 呀, indirect access 快到哪去? 02/08 00:23
yoco315:如果你目前不瞭解為什麼他這麼說,那代表你最好不要用 XD 02/08 00:32
yoco315:而等你瞭解了他為什麼這樣說,你也不會去用了 XDDD 02/08 00:32
loveme00835:同意樓上, 要清楚說明也是可以, 只是怕你聽到一半就吸 02/08 00:51
loveme00835:收不了, 那還是自己踩到洞學習經驗比較實際 02/08 00:51
amozartea:用過string真的就不太想用char* or char[] 02/08 01:13
amozartea:至於array的話嘛...效率還是還是比較好 02/08 01:13
amozartea:我想他應該是想要你用vector取代動態陣列 02/08 01:14
amozartea:要給靜態長度(而且很需要用註標塞東西)的就用array 02/08 01:15
amozartea:動態的就乾脆用vector以免你自己忘記delete 02/08 01:16
amozartea:但你在用vector之前還是要搞懂動態陣列在幹麻比較好 02/08 01:17
PkmX:其實vector所要取代的是new []不是plain array 02/08 01:18
PkmX:取代C-style array的是std::array 02/08 01:18
legendmtg:你必須懂 可是沒必要用到時就盡量不要用 02/08 02:02
嗯...... 總之我現在就是再把指標和陣列的章節再好好的看幾次 寫題目寫一寫才發現還是很多觀念不清楚0.0 ※ 編輯: o07608 來自: 122.121.73.10 (02/08 08:34)
sa074463:推yoco大的話XD 02/08 09:27
andyjy12:如果你要做的東西只是好玩,與運算速度無關,那就用 02/08 22:24
andyjy12:vector。 但不懂指標就很難了解電腦的運作。 02/08 22:25
maerdimer:反正遲早都要會寫,C++ 的程式裡通常也有 C-style code 02/09 08:29