在做题,然后跑出了些奇奇怪怪的东西,简单记录一下。
这问题是关于map的,或者说是关于map的operator[]函数,若出现了没有默认构造函数的类在“键值对”的“值”上时,这个map的operator[]函数就直接废掉,而且还给出奇奇怪怪的报错,当时还查很久才发现是map的问题。但我不想为我的类设置一个无用的空构造函数,就只能用map::insert和map::find来绕开使用operator[]了,可以说很恶心。
示例代码在下面,直接看代码比我说上面一大段话要直接明了的多。有兴趣可以尝试。
估计会有巨佬直接翻源码查原因,(我用Ctrl+鼠标左键跳转到函数定义后看了几秒后就关掉了,完全看不懂源码写了些啥
#include
把【不可用】的代码取消注释后,进行编译时会出现编译失败的情况。
虽然有几行“消息”已经直接说明是operator[]的锅,但被大量错误信息蒙蔽双眼查找老半天错误在哪。算是经验不足了这次,以后不直接按严重性进行排序,优先文件排序
我也就随便搜搜,没细查深层原因,但既然参考过别人博客,至少放个传送门:map 下标 *** 作 value 需要有默认构造函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)