没有可行的重载运算符[]用于类型

鲍勃

我定义了一个类型:

typedef unordered_map<string, list<string>> Graph;

我有一把钥匙:

string v = "A12";

当我尝试使用密钥访问列表时:

for (auto w = g[v].begin(); w != g[v].end(); w++)
    {

        ...
    }

g是type Graph,出现错误:

No viable overloaded operator[] for type 'const Graph'

如何解决此问题?

6502

问题是那g是一个const graph&索引运算符[]可能需要为地图创建一个新元素,从而对其进行突变。因此,您不能在上使用它const graph&(问题是const)。

g.at(key)如果不存在密钥,则可以使用引发异常的方法来代替。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章