如何在 C++ 中重新排序向量元素?

问题描述

我有一个对象向量,我想以不同于最初存储的顺序访问这些对象的元素。我最初的想法是创建一个指针数组,每个数组对象一个,并将指针值移动到所需的顺序(因此底层数组不需要更改)。

向量迭代器看起来类似于一个指针数组,但我无法确定它们是否可以重新指向。

有没有习惯的方法来做到这一点?

预计到达时间: 下面@doug 的评论让我的想法走上了另一条路,我认为我把任务复杂化了。数组中的每个对象都有一个属性,用于确定我要使用另一个属性的顺序。根据 doug 的建议,我可以遍历数组并写出两个新数组(每个属性一个)并执行对排序向量。与@Ted Lyngmo 的想法一致,也许我可以遍历数组并写出一个由两个属性组成的新结构数组,然后执行 std::sort。

预计到达时间 2: 以防万一,对象向量由外部库生成属性仅通过方法调用公开。

解决方法

尽管我提出的问题很糟糕,但这些回答帮助我找到了解决方案。仅供参考,这里是:

3