Я написал себе функцию сравнения для sort(). Он работал хорошо, когда я так выразился.Ошибка компиляции с функцией сравнения, C++ sort
bool comp(string a, string b)
{
...;
}
int main()
{
sort(...,...,comp);
}
Однако, когда я положил все это внутри класса, скажем:
class Test {
public:
bool comp(string a,string b)
{
...;
}
vector <string> CustomSort(vector <string> str) {
sort(...,...,comp);
}
};
Существует ошибка компиляции «Нет функции соответствия для вызова„рода ......“
.Почему это произошло
Вы должны использовать 'bool comp (const string & a, const string & b)', я думаю. Это не влияет на поиск имени, но, безусловно, влияет на эффективность выполнения (построение, а затем уничтожение новой строки для каждого аргумента при каждом сравнении относительно дорого). –