作者kevinqazwsx (Irean)
看板C_and_CPP
标题[问题] for次数如何更新?
时间Wed Jan 6 04:01:46 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Gcc
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
stl
问题(Question):
for次数如何随表单量更新
小弟我目前遇到一个瓶颈
EX:
vector<double> list;
for(int i=0;i<list.size();i++){
XX(副程式);
}
问题在於进入for回圈时list.size()就被限制住了,可是我的副程式会一直去更动
list.size()的大小
要用何种想法
才可以改善 list.size()可以每run一次副程式就更新
例如一开始进入for
list.size()=5;
可是後来副程式经过运算
可能会变成
list.size()=9;
可是for回圈不会跑9次
拜托高手解答了!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.101.251
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1452024111.A.8A5.html
1F:→ grayStone: while 01/06 04:27
2F:推 qas612820704: while loop? 01/06 04:42
3F:→ lucky1lk: if? 01/06 08:00
4F:推 LPH66: 你的 list 在哪?有传入 XX() 里吗?怎麽传的? 01/06 08:47
5F:→ LPH66: 我有点想猜你用 pass by value 传 list 进 XX 里 01/06 08:47
6F:→ LPH66: 这样你在 XX 外面的 list 根本就没动过, size() 自然不变 01/06 08:48
7F:→ LPH66: 不然当 list 有被其他程式改变的可能时 size() 不该不变 01/06 08:49
8F:→ LPH66: 如果真是这样的话请改用 pass by reference 传进去 XX 里 01/06 08:49
9F:→ Caesar08: 就算你的XX会呼叫list::erase,用<比较也可以才对 01/06 11:37
10F:→ Caesar08: 应该是如同LPH66讲的那样吧 01/06 11:37
11F:→ grayStone: 对耶应该是楼上说的list没更新,不是要while 01/06 11:50
12F:→ andrenvq57: i<list.size()每圈都会重算 01/06 12:35
谢谢大家 我是用 pass by reference
只是我自己耍笨了
要确保新增进来的 list 可以跑完
我又不小心在副程式 +erase
所以会导致一些刚进来的 list 跑不到
问题解决了 在副程式理面 抓住 要删掉的点
出for在删就OK了
※ 编辑: kevinqazwsx (220.132.101.251), 01/06/2016 18:24:32