我有:
upwards
我想在不修改原始数组的情况下对其进行排序,除了设置" pos"保存已排序元素的位置。我希望设置一个next / prev指针来对抗这两个元素是很有用的。价值但我无法弄清楚如何。我做了一个功能
i = random.randint(0, len(colors)-1)
我手动插入每个元素,我正在考虑在int _size; //array's dimension
int _cont; //number of elements at the moment (<_size)
bool _full;
struct elemento {
T value;
int pos;
elemento *prev;
elemento *next;
elemento(): value(0), pos(-1), prev(0), next(0){}
elemento(const T &v): value(v), pos(-1), prev(0), next(0){}
};
elemento *_array;
调用排序函数,但我无法弄清楚如何排序。
答案 0 :(得分:0)
您可以创建一个新的std::reference_wrapper数组或向量,然后std::sort该容器,以获得已排序的&#34;视图&#34;原始数组。
例如:
std::vector<std::reference_wrapper<elemento>> sorted_view(std::begin(the_array), std::end(the_array);
std::sort(std::begin(sorted_view), std::end(sorted_view), comparison_function_or_lambda);