我想交换两个标准::名单< dontCare项*> ::在Visual 2005化std :: swap返回0xBAADF00D
Iter it1 = ... ,it2 = ...; // it1 and it2 are ok, not end() or such
if(...){
std::swap(it1,it2);
}
的调剂工作,但迭代当我离开的,如果()范围,it1指向0xbaadfood。 It2是好的,但我尝试了几个变种,包括swap_iter和一个手工交换。
任何帮助表示赞赏:)
编辑
好了,羞时间。
交换it1是if范围内的局部变量。 F ** king cut'n pasting。
F ** king cut'n pasting。对不起,浪费你的时间:/
不要吃它。它会给你火箭筒。 – 2010-07-27 17:11:38
我认为我们需要多一点的代码...... – 2010-07-27 17:22:36
你真的交换了在if范围之外定义的迭代器吗?还是你用在if中定义的一些迭代器交换?容器是否在'if'中定义? – 2010-07-27 17:38:29