Visual Studio/C++:反向迭代器编译,但在运行时抛出错误

用户1543042

我正在参加一门学习 C++ 的课程,作为本课程的一部分,提供了一些示例代码(在讲师的视频中有效)。但是,程序的一部分给了我问题。

搜索SO,我意识到我可以使用反向迭代器;但是,我希望有人能解释为什么下面的代码会在 VS C++ 中引发运行时错误,而不是在 Linux(使用 g++)中。

#include <iostream>
#include <vector>
using namespace std;

int main( int argc, char ** argv ) {
        vector<int> vi1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        vector<int>::iterator it;   // vector iterator

        // bidirectional iterator -- iterate forward or backward
        // allows it--
        cout << "bidirectional iterator:" << endl;
    for(auto it = vi1.end() - 1; it >= vi1.begin(); --it) {
                cout << *it << " ";
        }
        cout << endl;

        return 0;
}

编辑:

添加了错误信息

在此处输入图片说明

1201程序报警

在循环的最后一次迭代期间,it递减到它的容器开始之前,vi1这会导致越界迭代器。使用 Visual Studio 的调试版本将检测到这一点并向您显示您得到的错误。发布版本不会检测到这个问题。

虽然在此实例中不会导致崩溃,但在第一个元素之前递减迭代器可能会导致崩溃或其他容器类型的其他未定义行为。尝试取消引用这样的迭代器也是未定义行为。

rbegin()rend()是返回反向迭代器的标准库方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Visual Studio 运行时查找和替换有效,但在运行 IIS 时出现空异常错误

来自分类Dev

Microsoft Visual Basic运行时错误

来自分类Dev

安装 Microsoft.Azure.SignalR.AspNet 会导致方法在部署到服务器时未实现运行时错误,但在 Visual Studio 2017 上运行良好

来自分类Dev

当 Visual Studio 运行良好时,向量迭代器上的 LInux g++ 编译器错误

来自分类Dev

Visual Basic 6.0中运行时错误“ 6”溢出

来自分类Dev

编译错误失败,而不是在运行时抛出“未解决的编译问题”

来自分类Dev

是否可以在运行时或编译时更改SSDL内容(Visual Studio 2015 EntityFramework数据库首先与Oracle结合使用)

来自分类Dev

运行时未部署Visual Studio

来自分类Dev

Visual Studio Git同步抛出错误

来自分类Dev

Visual Studio的设置,以在运行时删除对dll文件的依赖

来自分类Dev

如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

来自分类Dev

Visual Studio WPF窗口在运行时会收缩吗?

来自分类Dev

在Visual Basic中在运行时将图像添加到ImageList

来自分类Dev

如何在Visual Basic中在运行时更改按钮上显示的图像?

来自分类Dev

如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

来自分类Dev

确定在运行时是否启用了“ Visual Studio托管过程”?

来自分类Dev

如何在运行时使用Visual Studio调试Pygame应用程序

来自分类Dev

Visual Studio抛出“错误”的编译时异常

来自分类Dev

将Worklight项目作为Visual Studio项目运行时出错

来自分类Dev

在没有MSVCRT运行时的情况下在Visual Studio 2012中编译C

来自分类Dev

使用clang和Visual Studio 2013运行时从OS X交叉编译到Windows

来自分类Dev

Visual Studio 2015:在没有运行时库的情况下编译C / C ++

来自分类Dev

Visual Studio 2017 在第一次运行时不显示编译异常

来自分类Dev

带有Visual C ++ 2017运行时库(x64)的Visual Studio安装程序错误

来自分类Dev

MFPF 7.1-Windows 8.1应用程序在Visual Studio中运行时出现错误

来自分类Dev

ASP.NET (Visual Studio) 中的 HTML 代码出现 Javascript 运行时错误

来自分类Dev

Microsoft Visual Basic,运行时错误 424:需要对象

来自分类Dev

C#WPF应用程序在Visual中启动,但在直接运行时无法启动

来自分类Dev

如何在运行时选择迭代器方向

Related 相关文章

  1. 1

    使用 Visual Studio 运行时查找和替换有效,但在运行 IIS 时出现空异常错误

  2. 2

    Microsoft Visual Basic运行时错误

  3. 3

    安装 Microsoft.Azure.SignalR.AspNet 会导致方法在部署到服务器时未实现运行时错误,但在 Visual Studio 2017 上运行良好

  4. 4

    当 Visual Studio 运行良好时,向量迭代器上的 LInux g++ 编译器错误

  5. 5

    Visual Basic 6.0中运行时错误“ 6”溢出

  6. 6

    编译错误失败,而不是在运行时抛出“未解决的编译问题”

  7. 7

    是否可以在运行时或编译时更改SSDL内容(Visual Studio 2015 EntityFramework数据库首先与Oracle结合使用)

  8. 8

    运行时未部署Visual Studio

  9. 9

    Visual Studio Git同步抛出错误

  10. 10

    Visual Studio的设置,以在运行时删除对dll文件的依赖

  11. 11

    如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

  12. 12

    Visual Studio WPF窗口在运行时会收缩吗?

  13. 13

    在Visual Basic中在运行时将图像添加到ImageList

  14. 14

    如何在Visual Basic中在运行时更改按钮上显示的图像?

  15. 15

    如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

  16. 16

    确定在运行时是否启用了“ Visual Studio托管过程”?

  17. 17

    如何在运行时使用Visual Studio调试Pygame应用程序

  18. 18

    Visual Studio抛出“错误”的编译时异常

  19. 19

    将Worklight项目作为Visual Studio项目运行时出错

  20. 20

    在没有MSVCRT运行时的情况下在Visual Studio 2012中编译C

  21. 21

    使用clang和Visual Studio 2013运行时从OS X交叉编译到Windows

  22. 22

    Visual Studio 2015:在没有运行时库的情况下编译C / C ++

  23. 23

    Visual Studio 2017 在第一次运行时不显示编译异常

  24. 24

    带有Visual C ++ 2017运行时库(x64)的Visual Studio安装程序错误

  25. 25

    MFPF 7.1-Windows 8.1应用程序在Visual Studio中运行时出现错误

  26. 26

    ASP.NET (Visual Studio) 中的 HTML 代码出现 Javascript 运行时错误

  27. 27

    Microsoft Visual Basic,运行时错误 424:需要对象

  28. 28

    C#WPF应用程序在Visual中启动,但在直接运行时无法启动

  29. 29

    如何在运行时选择迭代器方向

热门标签

归档