正如您所推断的那样,您无法在STL容器中存储引用,因为存储的项目的要求之一是它们可以分配。这就是为什么你不能在STL容器中存储数组的原因。如果没有至少一个是用户定义的类型,也不能重载运算符,这使得如果在STL类中存储指针,则无法进行自定义比较…
但是,您仍然可以使用
std::set
指针,如果你给
set
自定义比较器仿函数:
struct NodePtrCompare {
bool operator()(const Node left, const Node right) const {
return left->key < right->key;
}
};
std::set
adjacent;
</code>
而你仍然可以快速删除
key
像你要的那样。