gpt4 book ai didi

c++ - C++ 中的冒泡排序函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:07:24 25 4
gpt4 key购买 nike

不允许引用数组。我知道在 C++ 中这是非法的。但是,还有另一种方法可以做到这一点吗?我确定有,但我无法弄清楚。

#include <iostream>
using namespace std;

#define UBound(n) sizeof(n) / sizeof(n[0]);

void SortArray(int & Arr[]) {
int ArrayLength;
ArrayLength = UBound(Arr);
int Min, Temp;
for (int i = 0; i = ArrayLength; i++) {
for (int j = 0; j = ArrayLength; j++) {
if (Arr[i+1] < Arr[i]){
Temp = Arr[i+1];
Arr[i+1] = Arr[i];
Arr[i] = Temp;
}
}
}
}
void main() {
int numArray[9] = { 9, 7, 6, 8, 4, 5, 3, 2, 1 };
SortArray(numArray);
}

最终函数:

 template < size_t I >
void SortArray(int(&Arr)[I]) {
int Min, Temp;
for (int i = 0; i < I - 1; i++) {
for (int j = 0; j < I - 1; j++) {
if (Arr[j+1] < Arr[j]){
Temp = Arr[j+1];
Arr[j+1] = Arr[j];
Arr[j] = Temp;
}
}
}
}

感谢大家的回答。

最佳答案

您可以使用函数模板(以及对数组的引用,而不是引用数组(注意括号))执行此操作:

template<size_t ArrayLength>
void SortArray(int (&Arr)[ArrayLength]) {
...
}

关于c++ - C++ 中的冒泡排序函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33158340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com