Anton
Посоны
Anton
в чем фишка VecDeque
Anton
упорно не понимаю, но есть в одном коде, и думаю может я чтото упускаю
Anton
сап чат
Oleg
В шмышле?
Oleg
Очередь циклическим массивом
Anton
Очередь циклическим массивом
а для дурака пояснение?
Oleg
а для дурака пояснение?
Есть массив, и с ним указатель начала очереди и конца. Если указатель на начало меньше, чем указатель для конца - в очереди все элементы между ними Если больше - в очереди все элементы от начала до правой границы массива, а потом от левой границы до начала. Каждый раз когда вытаскиваешь или добавляешь элемент соотв. указатель увеличивается на 1, и если достиг границы массива - сбрасывается на 0 Если конец очереди "догнал" начало, т.е. capacity достигнута - выделяется новый массив, больше прежнего в n раз, и элементы переносятся туда как в Vec
Tuntz
я не вижу, чтобы область видимости закончилась
если не привязать объект он должен кончиться в конце выражения, разве нет?
Kerrigan
область видимости это такой синтаксис
Kerrigan
который еще был и в сишке
Kerrigan
и в плюсах
Tuntz
я в курсе )
Mike
ну все и без нее понятно
Mike
и даже если поехало
Mike
но лучше бы заскринил)
Денис
во https://mexus.gitlab.io/c-queues-exercise/struct_queue.html
Денис
отрендеренный вариант
Денис
там правда фиксированный размер, но суть та же))
Mike
503
Mike
сук
Денис
дал адно
Mike
не пугай
Kerrigan
да
Mike
думал гитлаб лег
Денис
у меня открывается в анонимном даже режиме
Kerrigan
по ссылке 503
Oleg
Так работает deque в STL, но первокурсниками мы не умели в STL и писали это руками на алемпиадках
Денис
по ссылке 503
как так-то
Kerrigan
наверное неправильная
Денис
у меня открывается даже с телефонного браузера))
Денис
в общем
Денис
Kerrigan
сейчас открылось
Mike
у меня два года назад ученик из 10 класса такое писал
Mike
так что не сложная идея так-то
Денис
👍
Anton
Чат еще раз сап
Anton
` 42 | .collect::<Vec<Rc<RefCell<DrawerView»»(); | ^^^^^^^ a collection of type std::vec::Vec<std::rc::Rc<std::cell::RefCell<layout::view::DrawerView>>> cannot be built from an iterator over elements of type std::rc::Rc<std::cell::RefCell<layout::view::View>> ``
Anton
DrawerView это трейт
Anton
хранить просто Vec<Rc<RefCell<MyTrait»> можно
Anton
вот мапать нельзя
Anton
что я делаю не так?
Filipp
рефцеллы наверное надо руками кастовать
Evgεny
раст ис бьютифул
պլհկ
B O X
Anton
рефцеллы наверное надо руками кастовать
Так вроде и кастуются они вот так childs.iter().map(|&c| Rc::new(RefCell::new(c)))
Anton
что же не так
Filipp
RefCell:new(c) создает RefCell<T>
Anton
B O X
а без box никак?
Anton
Бля ну тоесть единственный варик это Vec<Rc<RefCell<Box<DrawerView»»?
Anton
@notplhk
Filipp
если есть Rc то коробка не нужна же
Anton
если есть Rc то коробка не нужна же
да но он все равно ругается же
Filipp
ты можешь на плейграунде повторить?
Mikhail
а почему там типы разные? View и DrawerView?
Filipp
одно тип другое трейт
Filipp
https://play.rust-lang.org/?gist=cbefd851f31f39c27ff9d244ab14ae8c&version=stable у меня работает как назло
Filipp
о с мапом-коллектом заработало. Итак вот так неправильно: https://play.rust-lang.org/?gist=cbefd851f31f39c27ff9d244ab14ae8c&version=stable ща падажжи ебана покажу как правильно
Filipp
не падажжи так тоже неправильно хуе мое
Anton
У меня в new принимает Vec<Vec>, для View есть трейт DrawerView, и на выходе в структуре должен быть имено вектор рефселлов
Filipp
https://play.rust-lang.org/?gist=e21321a5e904452e9de23745fc89526b&version=stable
Anton
я попорбовал сделать это мапом = коллект
Anton
и нихуя
Filipp
посмотри плейграунд и мапы разные поприменяй
Anton
ща попробуею
Filipp
https://play.rust-lang.org/?gist=30983bff90d3b39a8ff120a18e57518d&version=stable поудобнее собрал
Anton
у меня не вектор ссылок
Anton
есть вектор структур
Anton
но для структуры заимплеменчен трейт
Anton
и я хочу чтобы в конце он сохранялся именно как вектор трейтов
Filipp
тебе нужна либо коробка либо рц
Filipp
поправь плейграунд чтобы было как надо
Anton
https://github.com/friktor/quick-tk/blob/master/src/layout/view.rs#L62
Anton
Вот так у меня сейчас
Anton
там все просто, и без плейграунда