Переполнение буфера кучи с помощью 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()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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