C++ 为什么这个快速排序的实现从一个void函数返回? #包括 使用名称空间std; 模板 无效快速排序(项目a[],整数l,整数r) { if(r
如果C++ 为什么这个快速排序的实现从一个void函数返回? #包括 使用名称空间std; 模板 无效快速排序(项目a[],整数l,整数r) { if(r,c++,sorting,return,quicksort,void,C++,Sorting,Return,Quicksort,Void,如果r小于或等于1,则return从函数“返回”到调用函数。它基本上告诉您,如果r不是2或更大,则继续是没有意义的 另请参见您使用返回以避免继续执行函数的其余部分 顾名思义,它从函数返回 返回后的代码不会运行 (阅读其他100个答案,你永远不会忘记这一点)。它实际上并没有返回值。return语句所做的只是终止函数 你不会想的 #include<iostream> using namespace std; template <class Item> void quick
r
小于或等于1,则return
从函数“返回”到调用函数。它基本上告诉您,如果r
不是2或更大,则继续是没有意义的
另请参见您使用
返回
以避免继续执行函数的其余部分
顾名思义,它从函数返回
返回后的代码不会运行
(阅读其他100个答案,你永远不会忘记这一点)。它实际上并没有返回值。return语句所做的只是终止函数 你不会想的
#include<iostream>
using namespace std;
template <class Item>
void quicksort(Item a[], int l, int r)
{
if (r <= 1) return;
int i = partition(a, l, r);
quicksort(a, l, i-1);
quicksort(a, i+1, r);
}
如果
return
部分只是一个提前终止命令。如果r它只是用于在满足条件的情况下在该点结束函数,那么它将停止函数。在具有void
返回类型的函数中,一个return
语句将从函数退出并返回到其调用方ol然后从下一条指令或表达式计算继续
还要注意的是,从void
-返回函数的末尾流出相当于return
语句,例如:
if(r>1)
{
int i=partition(a,l,r);
qucksort(a,l,i-1);
qucksort(a,i+1,r);
}
在您的示例中,return仅用于退出函数,即返回到调用它的位置。请参见以下答案:
在这个特定的例子中,我猜想作者的意图是停止函数的进一步执行。void
函数中的return
语句立即退出函数。这里使用return
语句,以便如果要对大小为0或大小为1的数组进行排序,则函数不执行任何操作此函数也可以使用if
语句编写,如下所示:
return;
模板无效快速排序(项目a[],int l,int r){
如果(r>2){
int i=分区(a,l,r);
快速排序(a、l、i-1);
快速排序(a、i+1、r);
}
}
此函数的含义与函数的原始版本相同,但不明确包含return
语句
希望这有帮助!如果在
返回后未指定任何值,则表示返回无效
template <class Item> void quicksort(Item a[], int l, int r) {
if (r > 2) {
int i = partition(a, l, r);
quicksort(a, l, i-1);
quicksort(a, i+1, r);
}
}
不会返回与快速排序
函数声明的void
返回类型匹配的任何内容。这也意味着在这种情况下,它将返回给快速排序
函数的调用者。让答案流动:)你得到一张选票,你得到一张选票,每个人都得到一张选票:P@Named是的,这是一个有趣的关于问题和答案演变的观察(但显然没有重复)…非常感谢guyz。真是一个很棒的网站
return;
template <class Item> void quicksort(Item a[], int l, int r) {
if (r > 2) {
int i = partition(a, l, r);
quicksort(a, l, i-1);
quicksort(a, i+1, r);
}
}
return;