这是我的问题: 我有一个结构:如何将结构成员数组作为参数传递给函数?
struct point
{
int x;
int y;
};
,然后我有一个数组:
for (int i = 0;i < n;i++)
{
arr[i].x=rand() % n + 1;
}
我所定义的quicksort
功能如下:
void quicksort(int *a, int left, int right);
和我想通过X
坐标来排序点,所以我打电话给quicksort
:
quicksort(arr.x, 0, n-1);
这是错误消息:
error: request for member 'x' in 'arr', which is of non-class type 'point [(((unsigned int)(((int)n) + -0x000000001)) + 1)]'
很抱歉,如果这个问题是太愚蠢或先天存在缺陷的,事实是我是一个新手,我很愿意学习尽可能多尽可能,我会非常感谢你的帮助!
[避免使用'rand'。(http ://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful) – chris
你应该使用'std :: sort',并且定义一个自定义的比较器。 –
你不能用这种方式来切片结构(即使你可以,你不会想要的,因为那样会对x坐标进行排序,并将它们与随机的y坐标进行排序,而不是与原来配对的y坐标。) –