list iterator not decrementable
来源:互联网 发布:鸟哥的linux私房菜 pdf 编辑:程序博客网 时间:2024/06/05 11:25
刚遇到这个“list iterator not decrementable”的问题,网上多数解决方案是这样的:
意思就是在#include "stdafx.h"的下一行加上#define _HAS_ITERATOR_DEBUGGING 0
这样虽然能解决部分问题,但其实出现这个错误的根源在我们的代码之中,如这位仁兄所回答的一样:
意思就是,错误的根源在我们的代码中,因为C++标准里不允许迭代器超出任何容器允许的范围,所以会出错。
以我自己的代码为例,我的代码中使用到了reverse_iterator,原代码如下:
TransVector tempVet;list<TransVector>::reverse_iterator ity = vectors.rbegin();++ity;for (list<TransVector>::reverse_iterator itx = vectors.rbegin();itx != vectors.rend(); ++itx, ++ity){if (ity != vectors.rend() && IsBetterThan(*itx,*ity,preVet)){tempVet = *itx;*itx = *ity;*ity = tempVet;}}
原意是,迭代器ity在迭代器itx之前,因为是reverse_iterator,这样由后往前比较list中的元素,完成后最好的元素在list头部。
但这段代码报了“list reverse_iterator”的错误,按照上面的解释“C++标准里不允许迭代器超出任何容器允许的范围”,我检查了
代码,发现在itx 到了list的rend()时,ity已经超出rend()的范围了,因此如下修改了代码,错误就消失了。所以建议大家出现这
个错误先查看自己的代码逻辑。
TransVector tempVet;list<TransVector>::reverse_iterator ity = vectors.rbegin();++ity;for (list<TransVector>::reverse_iterator itx = vectors.rbegin(); ity != vectors.rend() && itx != vectors.rend(); ++itx, ++ity){if (IsBetterThan(*itx,*ity,preVet)){tempVet = *itx;*itx = *ity;*ity = tempVet;}}
- list iterator not decrementable
- list iterator not incrementable
- List Iterator Not Incrementable
- list iterator not dereferencable
- c++ list iterator not incrementable
- STL list "list iterator not incrementable"
- vs2005里List Iterator Not Incrementable
- Debug Assertion Failed ! List iterator not dereferencable
- C++ Runtime Error :STL list "list iterator not incrementable"
- 迭代器操作特别需要注意(list iterator not incrementable)
- C++ list iterator not incrementable 不是erase的情况
- List Iterator
- list iterator
- list && iterator
- c++ X STL - Traverse List and Delete Node , Error list iterator not incrementable
- list使用中遇到的erase问题(List Iterator Not Incrementable)
- list使用中遇到的erase问题(List Iterator Not Incrementable)
- list使用中遇到的erase问题(List Iterator Not Incrementable)
- windos 11g em 安装配置
- adb server is out of date. killing...
- 传一家离岸公司将以近亿美元收购酷我音乐
- 为何奇虎360一直难以“剿灭”?
- 如何在centos下编译安装lighttpd
- list iterator not decrementable
- linux shell bash 内置变量参考
- 寂寞的360与搜狐:光搞基,不搞买卖?
- MySQL+SQL函数大全
- 虚拟机搭建hadoop集群
- VS2008 SP1制作安装程序时如何将.Net Framework3.5 SP1打包进去
- leetcode-Evaluate Reverse Polish Notation
- Spring的bean中直接调用成员变量出现nullpointexception的解决方法
- 通过google找网站后台的方法