作者EdisonX (閉上眼的魚)
看板C_and_CPP
標題[問題] vector push_back fail.
時間Fri Jan 14 14:40:54 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
vs 2008
問題(Question):
primer ch9 剛念完,裡面提到 find ,
於是實做了類似下面的東西
beg = ivec.begin(), end=ivec.end();
do{
beg = find(beg, end, 2);
vit.push_back(beg++);
}while(beg!=end);
完整程式碼及錯誤視窗於下連結,
於執行期會失敗, 不知是不是我哪裡觀念有問題
錯誤結果(Wrong Output):
http://ppt.cc/9pfV
程式碼(Code):(請善用置底文網頁, 記得排版)
http://nopaste.csie.org/8b2fc
補充說明(Supplement):
Primer 第二篇是不是要懂資料結構、演算法才念得下去?
(資料結構我只知道 link list,演算法完全沒學過,只知道幾個簡單的排序)
我覺得現在念得好痛苦,是不是要有其它的輔助書籍?
謝謝各位。
--
If there is no tomorrow,
I want to see u last time.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
→ stupid0319:剛開始會比較痛苦,慢慢就習慣了 01/14 15:09
→ loveme00835:除非讀的人跟你一樣懂值的變化, 否則別把 beg++ 和其 01/14 17:50
→ loveme00835:他運算寫在一起 01/14 17:50
→ EdisonX:謝謝l大的指導,我會再多注意的,謝謝。 01/14 18:09
→ EdisonX:to s: 希望這痛苦不會太久,ch10 map insert 以後讓我好亂 01/14 18:10
推 legnaleurc:我以為要 *beg++ 01/14 18:14
→ EdisonX:因為剛學沒多久,只是有想法記錄出現的位置,所以測試可不可 01/14 18:23
推 tomap41017:把STL全部看完大概的資料結構概念跟演算法都差不多了吧 01/15 12:47
→ tomap41017:XD 01/15 12:47
推 avhacker:push_back 過後,你原有的 beg end 都可能會指向無效位址 01/16 13:53
→ avhacker:因為原來 reserve 的空間不夠用了,所以會 runtime error 01/16 13:54
※ 編輯: EdisonX 來自: 180.177.76.161 (05/12 00:52)