返回信息流有一行代码:V.insert(V.begin() + i - 1, val);
总是说offset out of range,查了半天的i值,i-1 绝对没有越界呀!百撕不得骑姐!
后来写成:
int temp = i - 1;
V.insert(V.begin() + temp, val);
居然过了!
终于发现原来得这样写:V.insert(V.begin() + (i - 1), val);
因为 V.begin() + i 越界了。
细思恐极~~~我原来的程序是有多少BUG?!
这是一条镜像帖。来源:北邮人论坛 / cpp / #80805同步于 2014/7/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[心得]关于迭代器iterator~~~~
liuaner022
2014/7/15镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
想起这么一个函数
int mid(int a, int b) {
return ((a+b) / 2);
}
和
int mid(int a, int b) {
return (a + (b-a) / 2);
}
【 在 liuaner022 (殷千炀) 的大作中提到: 】
: 有一行代码:V.insert(V.begin() + i - 1, val);
: 总是说offset out of range,查了半天的i值,i-1 绝对没有越界呀!百撕不得骑姐!
:
: 后来写成:
: ...................