VS2010: assert "vector iterators incompatible" in std::vector.clear()
VS2010: assert "vector iterators incompatible" in std::vector.clear()
我正在使用以下愚蠢的代码:
std::vector<wxString> m_redoSteps;
...
m_redoSteps.clear();
当我使用 Visual Studio 6 或 GCC 编译时 m_redoSteps.clear() 工作正常,当我使用 Visual Studio 2010 时,有一个断言"矢量迭代器不兼容"(这导致发布版本中崩溃)。
任何想法这里有什么问题?
--
编辑:再添加一行代码:
std::vector<wxString> m_redoSteps;
...
if (!m_redoSteps.empty())
{
// do something in case it is not empty - which isn't in my case
...
}
m_redoSteps.clear(); // first call leads to the assertion...
安装 Visual Studio 2010 sp1,请参阅此错误报告: http://connect.microsoft.com/VisualStudio/feedback/details/545013
更新(2015 年 4 月 14 日):
错误描述545013:"vector::erase"约束在调试版本中返回不兼容的迭代器。
原始链接 http://connect.microsoft.com/VisualStudio/feedback/details/545013 不可用,但是原始错误的缓存在这里 http://web.archive.org/web/20140727031651/http://connect.microsoft.com/VisualStudio/feedback/details/545013
该错误已在 Visual Studio SP 1 中解决,如此处所述 Visual Studio 2010 Service Pack 1 的描述
相关文章:
- 如果 std::vector::clear() 不是静态的,如何在没有实例的情况下调用它?
- 了解 cin.fail() 和 cin.clear语言 - Vector 追加程序
- std::vector::clear()ing 二维向量线程的内部向量安全吗?
- 在从 std::vector 移动的上调用 .clear()、.shrink_to_fit()、.empty() 是否合
- 为什么 vector.clear() 在循环中不起作用?
- 为什么 vector::clear 在 foreach 循环中不起作用
- std::vector中的clear()是否会产生内存泄漏
- 如何在vector::clear()上保持向量元素的容量
- VS2010: assert "vector iterators incompatible" in std::vector.clear()
- 我是否应始终在功能末尾调用vector clear()
- vector clear()似乎无法释放push_back中分配的内存
- 在使用运算符=进行赋值之前,需要调用std::vector.clear()
- std::vector<std::p air<const int, const int> >::clear() VS 2010 no-compile
- Visual Studio 2010, C++, "vector iterators Incompatible" 在 vector.clear() 期间
- 更有效的是:vector.clear()或if(vector.empty())clear();
- 为什么这段代码工作正常?(vector.clear(), vector<vector<int> >)
- 在 std::vector::clear 之后对矢量中的构造/破坏感到困惑
- C++ std::vector::clear() crash
- STL vector.clear()导致内存双元释放或pthreads程序损坏
- c++的cin或vector clear不能很好地工作