试图打印第二个元素时,C++矢量下标超出范围

C++ vector subscript out of range when trying to print second element

本文关键字:下标 范围 C++ 打印 第二个 元素      更新时间:2023-10-16

我有错误"表达式:矢量下标超出范围"。这就是我的矢量:

std::vector<const char *> imagePaths{ "space.jpg", "playerSprite.png"};

当我做这行代码时,我得到了错误:

std::cout << imagePaths[1];

但是向量中有2个项目。

请帮帮我,提前谢谢。

要初始化矢量,请使用C++03:的数组

const char* arr[] = {"space.jpg", "playerSprite.png"};
std::vector<const char *> imagePaths(arr, arr + sizeof(arr) / sizeof(arr[0]) );

对于C++11来说,这更容易:

std::vector<const char *> imagePaths = { "space.jpg", "playerSprite.png"};

编辑:

您确定调试断言来自std::cout << imagePaths[1];吗?