Когда я вызываю функцию построения я получаюсортировка массива с пользовательским компаратором
ошибки C3867: «суффиксного массива :: ЧКИ»: вызов функции отсутствует список аргументов; использовать '& суффиксный массив :: CMP', чтобы создать указатель на член
ошибка C2780: 'аннулируются станд :: сортировать (_RanIt, _RanIt)': ожидает 2 аргументы - 3 при условии,
class A{
private:
std::string text;
std::vector<int> array;
bool cmp(int a, int b) {
return std::lexicographical_compare(text.begin() + a, text.end(), text.begin() + b, text.end());
}
void build(const std::string &str, std::vector<int> &vec) {
//some vector values actions
std::sort(vec.begin(), vec.end(), cmp);
public:
}
};
могли бы вы, пожалуйста, скажите, что здесь не так? Я использую Visual C++ компилятор
Я собирался предложить ему сделать это статическая функция ... ваш совет является гораздо более полным. – Jekyll
@Jekyll: Представление элемента 'static' тоже было моей первой идеей, но код фактически использует' A :: text' в функции 'A :: cmp()', т. Е. Объект действительно необходим. То есть, функция 'static' не решит проблему! –
, так как функция bind была введена только в C++ 11 Интересно, как вы могли справиться с ней перед новым стандартом? (Мне это действительно не нужно, просто любопытно) – SAD