C++中set,map使用自定义类型(类或者结构体) 在项目中需要使用自定义的类作为key,由于定义类的时候并没有为类重载小于号,在编译的时候出现了很奇怪的错误。如下: 报错显示,没有对类定义小于规则。(作者当时想,也没用到小于,干嘛要定义) 后来发现还是太年轻了。问题在于C++中set和map是红黑树实现的,所以如果使用自定义的类型的时候,需要在自己的类型中重载<号。有了偏序关系,这样C++才能正确构建红黑树。 记录一下,以免将来犯错: