Шаблон set
параметризован как
template<
class Key,
class Compare = std::less<Key>,
class Allocator = std::allocator<Key>
> class set;
Для хранения указателей для типа T
, но при этом убедитесь, что значения являются уникальными , вам просто нужно предоставить соответствующий Compare
функтор, который может сравнивать указатели путем сравнения их разыменованных значений.
Например, для указателей на some_type
мы могли бы использоватьчто-то вроде:
class comparison {
bool operator()(const some_type* lhs, const some_type* rhs) const {
return *lhs < *rhs;
}
};
и затем объявить набор как
std::set<some_type*, comparison> s;