我定义了一个类型:
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'
如何解决此问题?
问题是那g
是一个const graph&
。索引运算符[]
可能需要为地图创建一个新元素,从而对其进行突变。因此,您不能在上使用它const graph&
(问题是const
)。
g.at(key)
如果不存在密钥,则可以使用引发异常的方法来代替。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句