c++sort函数“std::_Debug_range2”: 2 个重载中没有一个可以转换所有参数类型 错误
线性表定义:template<classT>classLinearList{public:LinearList(intMaxSize=100);~LinearList()...
线性表定义:
template<class T>
class LinearList
{
public:
LinearList(int MaxSize=100);
~LinearList(){delete[] element;}
bool IsEmpty()const{return length==0;} //是否为空
int Length()const{return length;} //长度
bool Find(int k,T &x)const; //查看第k个元素返回到x中
int Search(const T &x)const; //查找x返回其下标
LinearList<T>& Delete(int k,T& x); //删除第k个元素,并把删除元素存入x
LinearList<T>& Insert(int k,const T& x);//在k之后插入x
void Output(ostream& out)const;
void Sort(bool(*cmp)(T ea,T eb));
private:
int MaxSize;
int length;
T* element;
};
Sort函数用于给线性表element数组排序
template<class T>
void LinearList<T>::Sort(bool(*cmp)(T ea,T eb))
{
if(Length()<2)return;
else
sort(element[0],element[Length()-1],cmp)
}
调用时这样写的:
bool cmp(int a,int b)
{
return b<a;
}
void main(void)
{
LinearList<int> L(5);
L.Insert(0,2).Insert(1,6).Insert(0,4).Insert(2,1);
L.Sort(cmp)
};
为什么会出现以上错误 谢谢大神 展开
template<class T>
class LinearList
{
public:
LinearList(int MaxSize=100);
~LinearList(){delete[] element;}
bool IsEmpty()const{return length==0;} //是否为空
int Length()const{return length;} //长度
bool Find(int k,T &x)const; //查看第k个元素返回到x中
int Search(const T &x)const; //查找x返回其下标
LinearList<T>& Delete(int k,T& x); //删除第k个元素,并把删除元素存入x
LinearList<T>& Insert(int k,const T& x);//在k之后插入x
void Output(ostream& out)const;
void Sort(bool(*cmp)(T ea,T eb));
private:
int MaxSize;
int length;
T* element;
};
Sort函数用于给线性表element数组排序
template<class T>
void LinearList<T>::Sort(bool(*cmp)(T ea,T eb))
{
if(Length()<2)return;
else
sort(element[0],element[Length()-1],cmp)
}
调用时这样写的:
bool cmp(int a,int b)
{
return b<a;
}
void main(void)
{
LinearList<int> L(5);
L.Insert(0,2).Insert(1,6).Insert(0,4).Insert(2,1);
L.Sort(cmp)
};
为什么会出现以上错误 谢谢大神 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询