小编Dvd*_*rcK的帖子

表达式:无法增加值初始化的迭代器(调试时出错,但不在发布模式下 - Visual Studio)

我的问题是我的代码的某些部分在发布模式下运行没有问题,但在调试模式下出现错误。

设置:C++ 17 - Visual Studio 2019

为了显示差异,我写了一个小测试代码:

int main()
{
   //Vector containing 20 lists with length of 10 each. Every Element = 10
   std::vector<std::list<int>> test(20, std::list<int>(10,10));

   std::cout << test[6].front() << std::endl; //test if initialization worked

   std::list<int>::iterator test_iter;
   for (test_iter = test[6].begin(); test_iter != test[6].end(); test_iter++)
   {
       std::cout << *test_iter << std::endl;
       test[6].erase(test_iter);
   }
}
Run Code Online (Sandbox Code Playgroud)

在发布它工作正常

但是在调试中我得到了这个

有谁知道为什么两种模式之间存在差异以及我如何调整它,因此调试模式也能正常工作?

提前感谢您的帮助!

最好的问候大卫

c++ list vector visual-studio visual-studio-debugging

2
推荐指数
1
解决办法
175
查看次数