迭代器取消引用断言错误
Iterator dereferencing assertion error
我正在使用迭代器循环访问列表,然后同时将它们取消引用到 obj 或数组中,我在 2 个不同的实例中执行此操作,但我收到断言错误,说我无法取消引用迭代器。
我很困惑,因为在其中一个函数中它工作正常,但是在第二个函数中它抛出了错误,但它们的编码方式相同。
引发断言错误的函数:
Coord backTrack(){ // recalls to intersection where dead-end route was found
list<Coord>::iterator it = pathHistory.end();
Coord deadEnd = *it;
coordsToUnmark.push_back(deadEnd);
pathHistory.pop_back();
return pathHistory.front();
}
在此函数中,它可以正常工作:
int findPath (Maze& theMaze, const Coord& start, const Coord& end, Coord path[]){
patherFinder(theMaze, start.x, start.y, end);
list<Coord>::iterator it;
int ii = 0;
for (it = pathHistory.begin(); it != pathHistory.end(); it++){
path[ii] = *it;
ii++;
}
阅读评论后,我意识到 list.end() 不是最后一个元素,而是列表容器中的过去结束元素,这解释了为什么我无法取消引用它。
相关文章:
- 尝试使用 std::vector<std::thread时出现静态断言失败错误>
- 错误:断言失败 (src.type() == CV_8UC1) 在阈值中
- OpenCV 错误:断言失败 - 矩阵减去
- OpenCV 错误:断言在 cv::Mat 行 522 中失败
- C++ / CannyEdgeDetection.exe 已停止工作 代码块 /OpenCV 错误:断言失败
- ANN OPENCV错误断言失败了
- OpenCV 错误:断言失败(a_size.width == len)
- 在曲面中插入边-CGAL错误:断言冲突
- 错误 opencv 错误断言失败 (p [-1] <= 2) 是什么意思以及如何处理它?
- 在面中插入边缘 - CGAL 错误:断言冲突
- openCV 错误:断言失败 (scn == 3 || scn == 4) 在 cvtColor 函数中
- OpenCV 错误:断言失败.怎么办
- 错误:断言失败Allegro5 addons font text.c Line 77表达式字体
- OpenCV 错误:断言失败((img.depth() == CV_8U || img.depth() == CV_32
- OpenCV错误:断言在MixChannels(.)中失败
- OpenCV错误:断言失败,mat.cpp第537行
- roi的opencv错误断言
- OpenCV : 训练 SVM 错误 - 断言失败
- Opencv错误:断言失败
- 我正在尝试将灰度转换为更大的黑色图像.我得到这个错误OpenCV错误:断言失败