172 похожих чатов

Здравствуйте а как удалить элемент из двусвязного списка из середины

в расте?

24 ответов

28 просмотров

.remove() вроде

Kelbon- Автор вопроса
Dmytro Polunin
.remove() вроде

так его искать придётся же, я хочу как в С++ по итератору удалить чтобы за О(н) не искать

Kelbon
так его искать придётся же, я хочу как в С++ по ит...

Всмысле по итератору удалить? По итератору будет O(n) как раз

Kelbon
так его искать придётся же, я хочу как в С++ по ит...

Смотри вот сюда и выбери коллекция которая тебе нужна https://doc.rust-lang.org/std/collections/index.html#sequences

0. Выкинуть двухсвязный список. 1. Да, из плюсового кода тоже. 2. Порешать различные олимпиады, чтобы понять, что двухсвязные списки, в общем-то, не нужны. 3. Только в редчайших случаях ими пользоваться.

Kelbon- Автор вопроса

ээ, списки это очень полезная структура и нужная... И если её добавляют в стандартную библиотеку она должна поддерживать базовые операции

Kelbon
ээ, списки это очень полезная структура и нужная.....

https://kjellkod.wordpress.com/2012/02/25/why-you-should-never-ever-ever-use-linked-list-in-your-code-again/

Kelbon- Автор вопроса
Traveller Kolsky
https://kjellkod.wordpress.com/2012/02/25/why-you-...

если на расте нельзя написать нормальный двусвязный список это не значит что его нельзя использовать

Traveller Kolsky
https://kjellkod.wordpress.com/2012/02/25/why-you-...

мне, как человеку, что не супер хорошо прошарен в алгоритмах, а тем более в оптимизациях, интересно, неужели linked-list такая популярная структура данных. Понятно, что она базовая и простая в логике, но медленнее индексных (если правильно их так называть) структур данных вроде вектора, а места, где вот действительно необходим именно linked-list (настолько, что без него решение было бы уродским или просто невозможным) я придумать не могу, так как, повторюсь, опыта в таком нет. Приходит в голову фп-стиль, но я уверен, там можно либо оптимизациями, либо какими-то другими структурами данных, избавиться от него. Я против какого-то радикального подхода, вроде "в нашем языке linked-list запрещен", но также интересно, насколько он важен для Вас, как разработчиков, потому что мне не приходилось его использовать вне алгоритмических задач, только если яп его сам не навязывает, как дефолт, например.

Traveller Kolsky
0. Выкинуть двухсвязный список. 1. Да, из плюсовог...

А. Вот увидел это сообщение. Почему 2 и 3, и в случае 3, какие случаи есть, где это оправдано?

Kelbon
ээ, списки это очень полезная структура и нужная.....

Ага, вот такое без извращений с linked list-ами, кажется, сделать не получится… И тут сплайсинг обязателен

Kelbon
что же там сложного?

Сейф апи сделать сложно, не?

Kelbon
что же там сложного?

Уфф… Я забыл скрин запостить………

hazer_hazer
мне, как человеку, что не супер хорошо прошарен в ...

ну так много где используется -- при разрешении коллизий в hashmap, при реализации non blocking data structures, всякие там skip list и вообще дофига где

Kelbon- Автор вопроса
Пух
Сейф апи сделать сложно, не?

С++ как то справляется, не помню чтобы кто то жаловался что сломал себе лист через erase

Kelbon
С++ как то справляется, не помню чтобы кто то жало...

Не справляется, но там и цели такой нет

Kelbon- Автор вопроса
Владимир Латыпов
В C++ нет safe api…

по такой логике можно запретить всё и сказать что можн осовершить ошибку

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта