我想知道我们是否可以对预先创建的集进行排序.当我第一次创建set s_p2时,我使用不同的元素point.getLength()进行排序.但是在用户输入之后我想根据x值point.getX()对项目进行排序.我怎么做的?
似乎set container没有sort函数.我建议使用矢量.但是集合只能存储唯一的元素.
Q1:我如何根据标准对集合进行排序
Q2:如果set无法做到这一点,那么STL容器是最佳选择,如何对容器中的元素进行排序.
Yak*_*ont 13
你不能诉诸a set,它如何分类是特定类型的一部分set.给定set具有无法更改的固定集合顺序.
您可以set相对轻松地创建具有相同数据的新内容.只需set根据新标准创建一个新的排序.
如果要set在同一代码中使用这两个s,则必须抽象对底层的访问set.
现在,如果您正在进行罕见的读取和修改,使用vector您手动排序的通常是一个更好的主意.您可以使用std::unique- erase成语删除重复项.
std::set以有序的方式存储其成员.如果你穿过从集合.begin()到.end(),你将有项目的排序列表.
如果您不喜欢默认排序条件,则可以提供第二个模板参数 std::set<>