gpt4 book ai didi

c++ - 关于我在 C++ 中的排序算法的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:05 27 4
gpt4 key购买 nike

我有以下C++代码

#include <iostream>
using namespace std;

void qsort5(int a[],int n){
int i;
int j;
if (n<=1)
return;
for (i=1;i<n;i++)
j=0;
if (a[i]<a[0])
swap(++j,i,a);
swap(0,j,a);
qsort5(a,j);
qsort(a+j+1,n-j-1);
}

int main()
{
return 0;
}

void swap(int i,int j,int a[])
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}

我有问题

1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(13) : error C2780: 'void std::swap(std::basic_string<_Elem,_Traits,_Alloc> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\xstring(2203) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(13) : error C2780: 'void std::swap(std::pair<_Ty1,_Ty2> &,std::pair<_Ty1,_Ty2> &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\utility(76) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(13) : error C2780: 'void std::swap(_Ty &,_Ty &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\utility(16) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(14) : error C2780: 'void std::swap(std::basic_string<_Elem,_Traits,_Alloc> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\xstring(2203) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(14) : error C2780: 'void std::swap(std::pair<_Ty1,_Ty2> &,std::pair<_Ty1,_Ty2> &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\utility(76) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(14) : error C2780: 'void std::swap(_Ty &,_Ty &)' : expects 2 arguments - 3 provided
1> c:\program files\microsoft visual studio 9.0\vc\include\utility(16) : see declaration of 'std::swap'
1>c:\users\dato\documents\visual studio 2008\projects\qsort5\qsort5\qsort5.cpp(16) : error C2661: 'qsort' : no overloaded function takes 2 arguments
1>Build log was saved at "file://c:\Users\dato\Documents\Visual Studio 2008\Projects\qsort5\qsort5\Debug\BuildLog.htm"

请帮忙

最佳答案

您必须在使用前声明您的 swap 版本。由于编译器没有看到声明,它使用了它在 std 命名空间中找到的声明。此外,您拼错了 qsort5(省略了函数最后一行中的 5)。同样,编译器在 std 中发现了一个具有该名称(但签名不同)的函数并发出了警告。

您应该将 swap 的整个定义移动到函数 qsort5 之前的位置,或者插入一个声明

void swap(int i,int j,int a[]);

qsort5 之前。

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

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