我刚接触C++,在尝试让一个接收数组的函数返回一个数组时遇到了困难。该函数是一个非常基本的排序算法,用于大小为4的整数数组。我的代码如下:
int[] sortArrayAscending(int arrayToSort[3]) {
int sortedArray[3];
sortedArray[0] = minOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[1] = lowerMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[2] = higherMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[3] = maxOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
return sortedArray;
}
我觉得我对需要使用的语法很困惑(min、lower、higher、max等函数调用都正常工作)。
我真的很感激帮助。
谢谢。
编辑2:感谢所有的评论。我现在已经解决了,感谢@Rook和@Bob Yoplait的答案。我使用的代码是:
int* sortArrayAscending(int arrayToSort[4], int sortedArray[4]) {
sortedArray[0] = minOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[1] = lowerMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[2] = higherMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[3] = maxOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
return sortedArray;
}
int _tmain(int argc, _TCHAR* argv[])
{
int testNumbers[4] = {8,14,1,27};
int testSorted[4];
sortArrayAscending(testNumbers,testSorted);
for (int i = 0; i < 4; i++) {
cout << testSorted[i] << endl;
}
system("pause");
return 0;
}
感谢您的所有帮助-现在是查找向量的时间!
PS感谢@Luchian Grigore,他的解决方案很可能是最佳实践方法,但那不是我具体问的问题。
std::vector<int>
代替。 - hmjdstd::array<int,4>
。 - juanchopanza