C ++错误代码E0349,C2676

时间:2017-12-27 14:00:01

标签: c++ list skybox

目前正在尝试使用土壤库制作一个天空盒。但是,我得到了这两个错误,并且不知道为什么或要做什么来修复它们......如果有人可以提供任何帮助或建议,将不胜感激!

GLuint textureCon;

int widthX, heightY;
unsigned char* imageInfo;

std::list<int> faces;
faces.push_back(6);

glBindTexture(GL_TEXTURE_CUBE_MAP, textureCon);

for (GLuint i = 0; i < faces.size(); i++)
{
    imageInfo = SOIL_load_image(faces[i], &widthX, &heightY, 0, SOIL_LOAD_RGB);
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, widthX, heightY, 0, GL_RGB, GL_UNSIGNED_BYTE, imageInfo);
}

Error message

我在说faces[i]哪里发生E0349错误,说方括号与运算符不匹配?但我认为这是如何使用列表? 再次感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我认为你在这里误解了一些事情。

1)push_back只将一个元素推入一个容器,例如:push_back(6)将6推入容器而不是6个元素。

2)std :: list doens定义了[]运算符,它并不意味着它。如果你需要访问每个元素,我建议你使用std :: vector而不是[]运算符。