STL 迭代器:断言错误
STL iterator: Assertion Error
为什么下面的代码会产生断言错误:Expression: list iterators incompatible
?
#include <list>
using namespace std;
int main()
{
list<int> a;
a.push_back(1);
list<int>::iterator iter=a.begin();
a.erase(iter);
iter==a.end();
}
你想做的是这样的:
#include <list>
using namespace std;
int main()
{
list<int> a;
a.push_back(1);
list<int>::iterator iter=a.begin();
iter = a.erase(iter);
}
给定
集合a
迭代器在a
更改时变为无效,例如通过删除元素。
擦除iter
时,它失效了。我认为无效的迭代器不能用于分配给它们以外的任何事情,甚至不能将它们与任何东西进行比较。您可能想使用
iter = a.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错误:断言失败