![【C++】关于map的一些奇怪问题:map 下标 *** 作[key]需要有默认构造函数,第1张 【C++】关于map的一些奇怪问题:map 下标 *** 作[key]需要有默认构造函数,第1张](/aiimages/%E3%80%90C%2B%2B%E3%80%91%E5%85%B3%E4%BA%8Emap%E7%9A%84%E4%B8%80%E4%BA%9B%E5%A5%87%E6%80%AA%E9%97%AE%E9%A2%98%EF%BC%9Amap+%E4%B8%8B%E6%A0%87%E6%93%8D%E4%BD%9C%5Bkey%5D%E9%9C%80%E8%A6%81%E6%9C%89%E9%BB%98%E8%AE%A4%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0.png)
在做题,然后跑出了些奇奇怪怪的东西,简单记录一下。
这问题是关于map的,或者说是关于map的operator[]函数,若出现了没有默认构造函数的类在“键值对”的“值”上时,这个map的operator[]函数就直接废掉,而且还给出奇奇怪怪的报错,当时还查很久才发现是map的问题。但我不想为我的类设置一个无用的空构造函数,就只能用map::insert和map::find来绕开使用operator[]了,可以说很恶心。
示例代码在下面,直接看代码比我说上面一大段话要直接明了的多。有兴趣可以尝试。
估计会有巨佬直接翻源码查原因,(我用Ctrl+鼠标左键跳转到函数定义后看了几秒后就关掉了,完全看不懂源码写了些啥
#include
把【不可用】的代码取消注释后,进行编译时会出现编译失败的情况。
虽然有几行“消息”已经直接说明是operator[]的锅,但被大量错误信息蒙蔽双眼查找老半天错误在哪。算是经验不足了这次,以后不直接按严重性进行排序,优先文件排序
我也就随便搜搜,没细查深层原因,但既然参考过别人博客,至少放个传送门:map 下标 *** 作 value 需要有默认构造函数
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)