[問題] 完全找不出錯誤=_=...

看板C_and_CPP (C/C++)作者 (Alfred)時間16年前 (2010/04/24 20:54), 編輯推噓3(3012)
留言15則, 2人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 有問題的code: (請善用置底文標色功能) 補充說明: 如題 以DEV C來RUN結果出現"`push_back' has not been declared " 我找半天看不出哪裡有錯 以下是程式碼 #include<iostream> using namespace std; #include<string> #include<vector> void setTable(string*); int main() { string codeTable[6]; vector< char > test; char a = 'a'; test[0].push_back(a); // 這行出錯-.- cout << test[0]; system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.146.142

04/24 21:06, , 1F
陣列不夠大, 你的程式的目的是要存&印出字元0 ~ 9, 跟
04/24 21:06, 1F

04/24 21:07, , 2F
英文字母大小寫, 總共需要 10 + 26 + 26 = 62, 但是陣
04/24 21:07, 2F

04/24 21:08, , 3F
列只有宣告了36個元素大小, 存取違規了! 修改過的程
04/24 21:08, 3F

04/24 21:12, , 4F

04/24 21:14, , 5F
不要把字元直接轉成整數寫到程式碼中, 相信過兩個禮拜
04/24 21:14, 5F

04/24 21:14, , 6F
這支程式可能連你自己都看不懂
04/24 21:14, 6F

04/24 21:17, , 7F
恍然大悟 謝謝妳O口O
04/24 21:17, 7F
※ 編輯: skywillnosky 來自: 114.26.146.142 (04/24 22:12) ※ 編輯: skywillnosky 來自: 114.26.146.142 (04/24 22:15)

04/24 22:16, , 8F
呃...你還是重po一篇比較好...operator[] 是用來取
04/24 22:16, 8F

04/24 22:17, , 9F
vector物件裡元素在用的,所以你取出來的是一個型態為
04/24 22:17, 9F

04/24 22:18, , 10F
char 的物件, 裡面當然不會有push_back這個成員函式
04/24 22:18, 10F

04/24 22:19, , 11F
再加上你test建構的時候,並沒有給定大小,所以用[]會造
04/24 22:19, 11F

04/24 22:20, , 12F
成執行時期的錯誤
04/24 22:20, 12F

04/24 22:25, , 13F
所以說我用test.push_back(a)這樣就好了?
04/24 22:25, 13F

04/24 22:29, , 14F
是的
04/24 22:29, 14F

04/24 22:49, , 15F
我發現之前程式碼中for控制條件改成 c <= 'z' 才對 @@
04/24 22:49, 15F
文章代碼(AID): #1BqkdiDo (C_and_CPP)
文章代碼(AID): #1BqkdiDo (C_and_CPP)