我花了大约一个小时试图弄清楚为什么当我尝试构建以下内容时,我会收到 20 条类型为 “语义问题 - 没有匹配函数调用 'swap'”
的错误消息类(在 XCode 中)。
测试.h
#include <iostream>
#include <string>
#include <vector>
class Test{
std::vector<std::string> list;
void run() const;
static bool algo(const std::string &str1, const std::string &str2);
};
测试.cpp
#include "test.h"
void Test::run() const {
std::sort( list.begin(), list.end(), algo );
}
bool Test::algo(const std::string &str1, const std::string &str2){
// Compare and return bool
}
大多数遇到同样问题的人似乎都将他们的算法设为类成员而不是静态成员,但这显然不是这里的问题。
最佳答案
事实证明这是一个非常简单的问题,但不是很明显(并且错误消息也不能很好地帮助解决):
删除 run()
上的 const
声明 - 瞧。
关于c++ - sort() - 没有匹配函数来调用 'swap',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28761802/