为什么标准库里要有traits? 我们先回忆一下,标准库提供的算法的一些特征: 参数一般包括iterator. 要根据iterator的种类,和iterator包装的元素的类型等信息,来决定使用最优化的算法. 比如如果是vector的iterator,那么就可以使用+,-操作: 如果是list的iterator,那么就不可以使用+,-操作. 所以,算法必须知道一些关于iterator的信息. 有一些容器对应的iterator是个类,所以在这个类里,定义了如下的信息: template<typen…