3

我试图仅返回而不是更改 a 中的值std::map。它可以工作,但是如果我const按应有的方式使用该功能,则会收到错误消息No viable overloaded operator[] for type 'const std::map。我的代码如下:

GLuint getCurrentColorAttribute() const {
    return m_programs[m_currentActiveProgram].attributes["SourceColor"];
}

这是我的 IDE 中的错误图像: 在此处输入图像描述

4

1 回答 1

5

is not的[]运算符(因为如果不存在,它可以在映射中创建一个新条目),因此您不能从函数中调用它。std::mapconstconst

您可以at改用C++11

return m_programs.at(m_currentActiveProgram).attribute["SourceColor"];

于 2013-04-04T02:57:02.730 回答