我需要我的容器只包含独特的元素,所以我有一个这样的结构:
class OD
{
private:
std::string key;
public:
OD(){}
OD(const WayPoint &origin, const WayPoint &destination):
origin(origin), destination(destination)
{
std::stringstream str("");
str << origin.node_->getID() << "," << destination.node_->getID();
key = str.str();
}
bool operator<(const OD & rhs) const
{
return key < rhs.key;
}
bool operator()(const OD & rhs, const OD & lhs)
{
return rhs < lhs;
}
};
和一个容器:
std::set<OD,OD> t;
现在我需要改变我的容器来boost::unordered_set
输入,我需要修改仿函数吗?我很困惑,因为我知道我无法将 order 和 uniqueness 实现分开,而这一次容器不是 ordered 。所以我担心我的operator()
超载将毫无用处。