Re: [問題] array, pointer V.S. vector, Iterator

看板C_and_CPP作者 (「雄辯是銀,沉默是金」)時間11年前 (2013/02/08 08:36), 編輯推噓4(404)
留言8則, 5人參與, 最新討論串2/2 (看更多)
這是 c traps and pitfalls 上的一個範例: char *r, *malloc(); r = malloc (strlen(s) + strlen(t) + 1); if (!r) { complain(); exit (1); } strcpy (r, s); strcat (r, t); 這只是要做到字串 s, t 的相連, 就要寫不少 code。 std::string 呢? std::string s, t; s+t 就搞定 就算會用 c-style string, 在 c++ 應該也沒有多少人 能忍住 std::string 的誘惑。 c-style string 可比想像中的還要複雜。 這樣可以說服你用 std::string 嗎? 不過我可沒說不要學習指標哦! 是 char [], char * 你可以儘量選擇用 std::string 來處理。 至於 vector, array:vector 光能隨意的長大就已經足夠吸引 c++ 程式員了。 ※ 引述《o07608 (無良記者)》之銘言: : 我是一個自學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++重學一遍了...... : 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.239.51

02/08 09:17, , 1F
~"~......那是說char[]、char*完全沒有可取之處囉?
02/08 09:17, 1F

02/08 09:34, , 2F
至少我不會用char[]
02/08 09:34, 2F

02/08 09:34, , 3F
但還是會去了解原理
02/08 09:34, 3F

02/08 09:36, , 4F
一點淺見 operator+ 是否也要加上error handling才比較公平
02/08 09:36, 4F

02/08 09:45, , 5F
有啦,如果你只會用 string 裡面人家寫好的功能,哪天沒
02/08 09:45, 5F

02/08 09:46, , 6F
string 用,你就被廢功了。人家兩個都懂才敢說用 string
02/08 09:46, 6F

02/08 10:46, , 7F
所以我覺得要先學會用char[]實做string的方式,
02/08 10:46, 7F

02/08 10:46, , 8F
然後就不要再用char[]
02/08 10:46, 8F
文章代碼(AID): #1H54Y11W (C_and_CPP)
文章代碼(AID): #1H54Y11W (C_and_CPP)