История изменений
Исправление
Crocodoom,
(текущая версия)
:
только что исправил затирание памяти из-за неправильного индекса массива
В чём проблема использовать std::vector.at()?
В том, что это был не вектор.
А если используете свои контейнеры
И не контейнер.
А что у вас там, голые си-массивы?
Дискуссия плавно поворачивает к «ваш quicksort - не quicksort»
Правильно, потому что это предметный разговор. Тема статических гарантий корректности тех или иных алгоритмов — это cutting edge современного CS.
На всякий случай уточню: я не растохейтер, а даже наоборот. Но не терплю фанбойства. Если Rust уже сейчас позволяет написать настоящий qsort, предоставляя статические гарантии отсутствия UB — я первый порадуюсь. Или хотя бы позволит в будущем. Это будет большой прорыв по сравнению с C++. Если нет — не нужно заниматься головотяпством.
UPD: def настоящий qsort = qsort такой же быстрый, как на языке без статических гарантий отсутствия UB, т.е. C, C++. А полумер типа «ну хоть какой-то qsort, пусть тормозной, зато safe» нам тут не надо.
Исходная версия
Crocodoom,
:
только что исправил затирание памяти из-за неправильного индекса массива
В чём проблема использовать std::vector.at()?
В том, что это был не вектор.
А если используете свои контейнеры
И не контейнер.
А что у вас там, голые си-массивы?
Дискуссия плавно поворачивает к «ваш quicksort - не quicksort»
Правильно, потому что это предметный разговор. Тема статических гарантий корректности тех или иных алгоритмов — это cutting edge современного CS.
На всякий случай уточню: я не растохейтер, а даже наоборот. Но не терплю фанбойства. Если Rust уже сейчас позволяет написать настоящий qsort, предоставляя статические гарантии отсутствия UB — я первый порадуюсь. Или хотя бы позволит в будущем. Это будет большой прорыв по сравнению с C++. Если нет — не нужно заниматься головотяпством.