我可以知道如何将stl::list::sort
函数与外部函数一起用于抽象数据类型吗?
构造函数的示例代码如下所示:
ADType::ADType(string name, int object){
//constructor code
}
对于方法:
using <list>
using namespace std;
bool compare_Object(ADType& first, ADType& second){
//search algorithm
return true;
}
int main(){
ADType test1 = ADType("Test 1", 123);
ADType test2 = ADType("Test 3", 142);
ADType test3 = ADType("Test 2", 200);
list<ADType> testlist;
testlist.push_back(test1);
testlist.push_back(test2);
testlist.push_back(test3);
testlist.sort(compare_Object);
//code to print out objects in list
}
上面的代码行给出了函数调用缺少参数列表的错误C3867和函数不接受参数的C2660。我刚刚发布的代码有问题吗?
最佳答案
一个更简单的解决方案是将compare方法实现为静态方法,因此不需要对象实例即可使用该方法。
static bool compare_Object(BaseObj& first, BaseObj& second){
return first.getLength() > second.getLength();
// return true give me error since it can't really sort.
}
BaseObj类:
BaseObj::BaseObj(int a) {
length = a;
}
int BaseObj::getLength() {
return length;
}