→ dreamq :+50 +20 +20 +20 +2012/07 21:04
→ hiphopkai :二樓帥哥12/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