C++ 函数参数问题!
定义以下一个类:
class PointX{
public:
int operator<=(PointX a) const
{ return(x<=a.x);}
private:
int ID;
float x,y;
};
PointX X[n];
X[n] 是用来表示平面上点的坐标,现在要按x坐标对X[]进行排序,
那么MergeSort(,n)排序函数的第一个参数应该怎么写?
谢谢!
问题点数:20、回复次数:12Top
1 楼llf_hust()回复于 2005-04-21 22:42:32 得分 4
不知道你说的是什么意思
// int operator<=(PointX a) const //最好改为引用
int operator <= (PointX &a)const
{
return(x<=a.x);
}
Top
2 楼bing_huo(我是一个演员!)回复于 2005-04-21 22:50:08 得分 1
MergeSort(,n) 这个是什么东东?? 不是stl的排序算法哦。。。。。
还有 你那个operator <= 应该返回bool的。。。。Top
3 楼sunman1982(冥王星)回复于 2005-04-21 22:53:36 得分 1
倒是看懂了 可是MergeSort不熟悉啊 晕 学习去%……Top
4 楼sunman1982(冥王星)回复于 2005-04-21 22:54:15 得分 0
汗 楼上的 呵呵 见了你一天了 :) 学生吧Top
5 楼defyer007(深入浅出)回复于 2005-04-21 22:57:24 得分 4
我想
楼主可以单独定义一个比较函数,即不要将<=定义成成员函数,而是定义成如:
BOOL Compare(const PointX& a,const PoinX& b)
{ return a.x<=b.x;}
然后定义MergeSort函数如下:
MergeSort(BOOL (*func)(const PointX& a,const PointX&b),PointX *array)
{/* 函数体 */}
即将比较函数当作一个谓词传递给排序函数MergeSort
愚见
Top
6 楼uglystone(丑石)回复于 2005-04-21 22:58:30 得分 1
用sort(x,x+10);Top
7 楼liyuan02(梨园)回复于 2005-04-21 23:01:50 得分 0
定义以下一个类:
class PointX{
public:
int operator<=(PointX a) const
{ return(x<=a.x);}
private:
int ID; // 每个点的编号
float x,y; //平面上横坐标和纵坐标
};
PointX X[n];
X[n] 是用来表示平面上点的坐标,现在要按x坐标对X[n]进行排序,
调用合并排序函数MergeSort(,n)那么函数的第一个参数应该怎么写?
谢谢!
Top
8 楼ringbellxxh()回复于 2005-04-21 23:08:28 得分 2
heh,请楼主解释一下什么是合并排序函数?是c++自带的函数库中就有的函数么?Top
9 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-22 07:04:55 得分 2
XTop
10 楼qiqi162002(思想)回复于 2005-04-22 07:59:54 得分 2
楼主的意思是说,怎么在函数中传内置数组做参数吗?
(const PointX*, n)看看Top
11 楼liyuan02(梨园)回复于 2005-04-23 23:15:47 得分 0
合并排序函数是 王晓东 编的算法书上的算法!Top
12 楼qhfu(改个名字)回复于 2005-04-23 23:27:44 得分 3
void MergeSort(const PointX [] x,int size);Top




