【发布时间】:2012-12-06 01:11:34
【问题描述】:
我正在尝试将此函数转换为使用矢量对象而不是整数数组。 矢量对象如下所示:
std::vector<Heltal *> htal;
Heltal 类包含一个名为 heltal 的私有整数。
如何使用下面的函数对 htal 向量进行排序?
void Array::Sort(int a[], int first, int last)
{
int low = first;
int high = last;
int x = a[(first+last)/2];
do {
while(a[low] < x) {
low++;
}
while(a[high] > x) {
high--;
}
if(low<=high) {
std::swap(a[low],a[high]);
low++;
high--;
}
} while(low <= high);
if(first < high)
Array::Sort(a,first,high);
if(low < last)
Array::Sort(a,low,last);
}
【问题讨论】:
-
你想到了什么?
-
已经停止使用指针。有什么意义?
-
你试过了吗?应该没有变化。你也不需要
Array::Sort(a,low,last);中的Array:: -
是的,我尝试用 htal 参数替换 int a[] 参数,但我怀疑在函数中存储大量 Heltal 对象是最好的方法。
-
Kerrek SB 如果您知道,请随时推荐一种更好的方法。