模板堆的反向排序 class
Reverse Sort for a Templated Heap class
我创建了一个模板化堆 Class 并通过使用自定义迭代器 class 成功地对列表进行了升序排序 class,我只是想知道如何将其反向排序订单。
template <typename T>
inline void Heap<T>::sort_heap(DynamicArrayIter<T> first, DynamicArrayIter<T> second) {
int size = 0;
for (DynamicArrayIter<T> iter = first; iter != second; ++iter) {
size++;
}
T temp;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size - 1; j++) {
if (contents.at(j) < contents.at(i)) {
temp = contents.at(i);
contents.at(i) = contents.at(j);
contents.at(j) = temp;
}
}
}
}
谢谢,Soz 无法让代码插入工作...
已修复,只是更改了
if (contents.at(j) < contents.at(i))
到
if (contents.at(j) > contents.at(i))
我创建了一个模板化堆 Class 并通过使用自定义迭代器 class 成功地对列表进行了升序排序 class,我只是想知道如何将其反向排序订单。
template <typename T>
inline void Heap<T>::sort_heap(DynamicArrayIter<T> first, DynamicArrayIter<T> second) {
int size = 0;
for (DynamicArrayIter<T> iter = first; iter != second; ++iter) {
size++;
}
T temp;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size - 1; j++) {
if (contents.at(j) < contents.at(i)) {
temp = contents.at(i);
contents.at(i) = contents.at(j);
contents.at(j) = temp;
}
}
}
}
谢谢,Soz 无法让代码插入工作...
已修复,只是更改了
if (contents.at(j) < contents.at(i))
到
if (contents.at(j) > contents.at(i))