看板 C_and_CPP 關於我們 聯絡資訊
各位大大好 先附上 code: http://codepad.org/7EM6HVr7 input : 1 3 5 3 1 3 4 6 1 2 3 4 1 3 4 5 0 <--則結束 output : 同上 ---------- 我用gdb 發現錯誤在 getline那個部分 但上stackOverflow 看到好像也有人這樣用 一直不知道錯在哪 鬼打牆 希望大大們給點提示QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.219.136.197 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440593204.A.E3C.html
LiloHuang: vector<string> getData() 08/26 20:50
LiloHuang: { 08/26 20:50
LiloHuang: vector<string> inpt; 08/26 20:50
LiloHuang: string temp; 08/26 20:50
LiloHuang: while( getline(cin, temp) ) 08/26 20:51
LiloHuang: { 08/26 20:51
LiloHuang: inpt.push_back(temp); 08/26 20:51
LiloHuang: if (temp == "0") { 08/26 20:51
LiloHuang: return inpt; 08/26 20:51
LiloHuang: } 08/26 20:51
LiloHuang: } 08/26 20:51
LiloHuang: } 08/26 20:52
LiloHuang: 對於 vector 的操作,如果沒有先 resize() 是不可以直 08/26 20:52
LiloHuang: 接塞資料的,不管 index 是多少都不行,改用 push_back 08/26 20:53
LiloHuang: 就可以解決了 08/26 20:53
LiloHuang: 當然,除非原本 vector 的 size 就不為 0 就可以放資料 08/26 20:55
LiloHuang: 先 resize 直接塞資料,仍須注意是否有 out of range 08/26 21:03
milkdragon: 不對吧,vector當然可以直接塞資料,這個問題是出在 08/26 21:20
milkdragon: 變數生命週期,不能這樣 return 區域變數 08/26 21:20
milkdragon: 對不起我看錯了 你是複製一份 請無視上面的推文 囧 08/26 21:21
milkdragon: 樓上是對的,要用push_back,抱歉我剛沒看原po的code 08/26 21:22
milkdragon: 太丟臉了,讓我死了吧 XDDD 08/26 21:24
keke0421: 感謝兩位大大的解惑 >< 08/26 22:27