问题描述
- c++ sort() 比较函数重载问题
-
我用sort()函数排序
class A {
public:
int a;
bool operator<(A aa) const
{
if (a < aa.a) {
return true;
}
return false;
}
bool operator<(const A &aa) const
{
if (a < aa.a) {
return true;
}
return false;
}};
这俩个版本的重载,为什么sort只支持第一种。
解决方案
可以查看sort的参数中的函数原型
解决方案二:
你这说的重载函数实质上一样的,一个是传形参,一个是传递变量的引用,你在调用的时候两种方式写法上没有区别,只是系统在内存的操作上有区别。如果可以看看你是怎么调用的,我觉得你把引用和取地址操作符的用法搞混了。
下面是一个地址解释了什么是引用,什么是取地址操作
http://blog.csdn.net/syfly007/article/details/11486543
时间: 2024-09-14 05:13:15