[問題] 請問多個push_back之後,怎麼cout出來?

看板C_and_CPP (C/C++)作者 (LiLi)時間12年前 (2013/06/29 01:18), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dec C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 最近小弟剛學C++,想請問一下版上的大大 我把3筆資料push_back,想要把它們分別cout出來看看對不對 但是發現在輸出"price"的時候,它始終都是輸出第一筆的"price"的資料 麻煩版上的大大幫我看一下,感恩! 程式碼(Code):(請善用置底文網頁, 記得排版) https://gist.github.com/anonymous/5886237 補充說明(Supplement): 抱歉,中間的那個for我只有讓它run兩次 因為我沒想到可以讓它判斷終止的條件 上面的run出來的結果 no = 2 price = 1500 price = 2500 no = 3 price = 1500 price = 2500 no = 1 price = 1500 price = 2500 我的問題就是在說應該no = 3之後應該是要 price = 700 price = 1500 可是它卻輸出no = 2的"price" 我想要可以正確輸出成 no = 2 price = 1500 price = 2500 no = 3 price = 700 price = 1500 price = 3500 no = 1 price = 1800 所以想請問版上的大大中間的那個for 該怎麼處理比較洽當?? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.253.60.155

06/29 01:25, , 1F
price 每次用完應該清空再重新塞值進去
06/29 01:25, 1F

06/29 01:27, , 2F
要把 price 逐一印出來可以用 iterator 或是根據 size
06/29 01:27, 2F

06/29 01:43, , 3F
我是設定成先把全部資料push進去,再用iterator去把它cou
06/29 01:43, 3F

06/29 01:44, , 4F
t出來
06/29 01:44, 4F

06/29 01:46, , 5F
我寫的iter1 過一個迴圈會++,no可以正確的輸出
06/29 01:46, 5F

06/29 01:48, , 6F
但是第二個迴圈之後的price卻是錯的
06/29 01:48, 6F

06/29 01:57, , 7F

06/29 02:00, , 8F
vec.push_back(a) 其實是把 a 複製一份到 vector 裡
06/29 02:00, 8F

06/29 02:01, , 9F
因此 a 裡面的數值並不會被清空,所以你必須自己來。
06/29 02:01, 9F

06/29 02:35, , 10F
linotwo大,可以請你說明 a.price.clear(); 的用意??謝謝
06/29 02:35, 10F

06/29 02:40, , 11F
小弟資質駑鈍,看不出linotwo大的用意所在@@
06/29 02:40, 11F

06/29 03:57, , 12F
price 是一個 vector,每當你 push_back 他就會多一個值
06/29 03:57, 12F

06/29 03:57, , 13F
而 clear 則是把 vector 裡面的所有值清空
06/29 03:57, 13F
文章代碼(AID): #1HpSLK0D (C_and_CPP)
文章代碼(AID): #1HpSLK0D (C_and_CPP)