- 论坛徽章:
- 0
|
各位大侠帮我看下吧\r\n\r\n编译显示如下:\r\n\"test.cpp\", line 56: Error: Could not find a match for std::list<Element, std::allocator<Element>>::sort(CompA).\r\n\"test.cpp\", line 57: Error: Could not find a match for std::list<Element, std::allocator<Element>>::sort(CompB).\r\n\r\n编译环境是CC,Forte C++ 6 update 2\r\n\r\n代码如下:\r\n\r\n#include <list>\r\n\r\nusing namespace std;\r\n\r\nclass Element\r\n{\r\npublic:\r\n Element(int x, int y) : a(x), b(y)\r\n {\r\n }\r\n ~Element() {}\r\n\r\n getA() const\r\n {\r\n return a;\r\n }\r\n \r\n getB() const\r\n {\r\n return b;\r\n }\r\n\r\nprivate:\r\n int a;\r\n int b;\r\n};\r\n\r\nclass CompA\r\n{\r\npublic:\r\n operator()(const Element& x, const Element& y)\r\n {\r\n return (x.getA() < y.getA());\r\n }\r\n};\r\n\r\nclass CompB\r\n{\r\npublic:\r\n operator()(const Element& x, const Element& y)\r\n {\r\n return (x.getB() < y.getB());\r\n }\r\n};\r\n\r\nint main()\r\n{\r\n list<Element> listE;\r\n Element obj1(1,2);\r\n Element obj2(2,1);\r\n \r\n listE.push_back(obj1);\r\n listE.push_back(obj2);\r\n\r\n listE.sort(CompA());\r\n listE.sort(CompB());\r\n \r\n listE.clear();\r\n \r\n return 0;\r\n} |
|