我需要对自定义类型为std::vector<Blah> v
的向量按照Blah的整数id进行排序。我通过使用在Blah
中重载了运算符<
的方式来实现: std::sort(v.begin(), v.end())
bool operator< (const Blah& b) const { return (id < b.id); }
我发现Blah的私有id不能声明为
const int id
,否则类型Blah
不符合std::sort
的要求(我认为这与不可交换值有冲突)。如果
id
不是const
,一切都很好。然而,我不喜欢对象没有常量id仅仅是为了在向量中重新排列它们的顺序的要求而不同。有没有办法绕过这个问题,还是这就是现状?
id
需要是唯一的。 - symphonicconst
成员的对象。 - Quentin