Dårk
trial-and-error approach
Anton
Dårk
норм методика освоения программирования. главное не бояться писать "одноразовый код" - который не жалко будет выкинуть или переписать
Anton
Anton
ну мне хотябы промежуточный вариант нужен все же
Anton
чтото хоть чуть более менее приличное и все такое
Anton
у других совсем не тот подход который юзаю я
Anton
тоесть например в том же последнем тулките люди вообще все компоненты ручками пишут для вебрендера включая калькуляцию
Денис
Cat
(((
Cat
зато красивее
Денис
ну естественно, убрал один бранч =)))
Cuno
Cuno
Cat
Cat
ладно, это будет близко к обычному циклу
Cat
Anton
ТОваричи кто нить наталкивался, на "взвешеные списки" или точнее вектора в нашем случае, напромер мне при поиске нужно выбрать запись с наибольшим количеством совпадений атриббутов
реализую я это через структуру
Item { weight: usize, data: T }
Все найденые элементы заносятся в вектор, чем больше совпадений атриббутов, тем больше вес, в конце сортирую вектор по ключу, и наверху оказывается запись с самым большим весом - мож есть готовое чтобы не велосипедить?
Денис
если тебе нужен один элемент, просто делай поиск
Cat
ну и есть сортировка по ключу
Cat
Денис
шаре не нажал)
Cat
ага
Маjко
Маjко
Есть в std
Cuno
Anton
Денис
fixed
блин, да, так гораздо лучше) можно пытаться удалить из сета, даже если он пустой
Денис
в конце кстати всегда можно false возвращать
Денис
короче вот так уже выглядит адекватно — https://play.rust-lang.org/?gist=ea2eec128d80faf8822d4754d004a1af&version=stable&mode=debug — особенно если макрос hashset! заюзать
всем спасибо)
Маjко
Для всех поди только при автодерайве требует
Anton
impl Eq for PaxMatch {}
Anton
Пардон derive сделал
Anton
он там на все Eq захотел
Anton
так норм
-__-
Если нужно один раз в конце найти максимум, то зачем вообще сортировать?
Anton
Ну есть BestMatch и OtherMatches
Cuno
Если тебе только максимум нужен, то проще и быстрее обычный линейный поиск же
-__-
Если нужно один раз отсортировать и после этого не нужно апдейтить, то быстрее таки просто отсортировать, чем кучу строить.
Anton
Лучший вариант?
Anton
Хип, Тупой вектор?
Маjко
Маjко
И так и так nlogn
Маjко
Маjко
Иначе придется копировать вектор в хип
Маjко
Хотя если хип умеет перестраиваться из готового вектора, не копируя память, то монопенисуально
Маjко
Итерироваться по хипу или вектору в порядке убывания — легче по отсортированному вектору
Anton
Маjко
За logn
Cuno
Маjко
Anton
Ну я к тому что если изначально создать хип, потом передавать на взвещивание - и в процесе будет менятся вес, каждый раз будет перестраиватся
Маjко
Сортировка за O(n) — это отсортированный массив)
Cuno
nlogn*
Я имел в виду если бы вставка в Heap была бы O(1)
Маjко
Маjко
Маjко
Там есть удобный sort_by и не нужно писать свой Ord/Eq
Anton
Anton
Cuno
Anton
Блин
Anton
все таки тип Any охуенен
Anton
решает целую кучу проблем разом
Anton
была жесткая проблема в том как же мне родному хранить данные в контексте элемента
Anton
проставлять дженериком тип данных сверху это выглядит ну дюже адово, да и неудобно толком, ибо к элементу каждый может присунуть все что хочет
Anton
а тут есть тип any, все красиво, все изолировано, и вся отвественность за хранимые данные на пользователе
Anton
и извлекать данные просто
Anton
каеф
Anton