Переполнение буфера кучи с помощью std::sort и пользовательской функции сравненияC++

Программы на C++. Форум разработчиков
Гость
Переполнение буфера кучи с помощью std::sort и пользовательской функции сравнения

Сообщение Гость »


Я пытался решить алгоритмическую задачу и столкнулся с проблемой памяти. У меня есть функция под названием longestStrChain, которая является открытым членом класса Solution и фактически решает проблемы. Внутри него есть вызов std::sort с помощью специальной функции compare, которая, похоже, пытается прочитать память за пределами разрешенных границ. Для полного контекста мой код выглядит так:

// заголовки #include #include #include #include #include #include класс Решение { публика: // Вспомогательная функция static bool isPredecessor(std::string word_a, std::string word_b) { for (int i {0}; i < word_a.size(); ++i) { if (word_a != word_b) { return std::hash{}(word_a.substr(i)) == std::hash{}(word_b.substr(i + 1)); } } вернуть истину; } // Решение проблем int longestStrChain(std::vector&words) { // Кажется, проблема в этой строке (лямбда-функция) std::sort(words.begin(),words.end(), [](std::string a, std::string b) -> bool { return a.size()

Вернуться в «C++»