1.C++ map错误 No viable overloaded operator[]

问题描述:这个报错可能的原因也可能是类型不匹配(这个就不详细解释了,网上很多),我的问题是在一个方法里面使用map[]符号报错,但是在别的方法里面同样的用法没问题,如下图。


1.C++ map错误 No viable overloaded operator[]_第1张图片
image1.png

经过一番研究得出结论:


1.C++ map错误 No viable overloaded operator[]_第2张图片
image2.png

报错原因是由于方法后面加了const修饰导致的。
具体我们可以进到map的头文件中得知一二。


1.C++ map错误 No viable overloaded operator[]_第3张图片
image3.png

如上图所示[]前面并没有const修饰,所以我们可以用at()方法。
1.C++ map错误 No viable overloaded operator[]_第4张图片
image4.png

问题解决。

你可能感兴趣的:(1.C++ map错误 No viable overloaded operator[])