先看看std::set的声明
template < class Key, class Traits=less<Key>, class Allocator=allocator<Key> > class set
对比下std::map的
template < class Key, class Traits=less<Key>, class Allocator=allocator<Key> > class set
对比下std::map的
template <class Key, class Type, class Traits = less<Key>, class Allocator=allocator<pair <const Key, Type> > > class map
可以猜出,在std::set中使用用户自定义类型和使用自定义类型作为std::map的key没啥区别——可以作为std::map的key的用户自定义类型,就可以作为std::set的元素,反之亦然。故可以直接参考前几天写的《
使用用户自定义类型作为std::map的key》