当尝试打印第二个元素时,C ++向量下标超出范围

时间:2015-12-06 14:19:42

标签: c++ vector

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

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

我在执行以下代码时遇到错误:

std::cout << imagePaths[1];

但是载体中有2个项目。

请提前帮助我。

1 个答案:

答案 0 :(得分:1)

要初始化向量,请使用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];吗?