• Для чего нужен Empty и Elem в примитивной структуре данных?

    ozkriff
    @ozkriff
    Rust э̶н̶т̶у̶з̶и̶а̶с̶т сектант, хобби игродел
    > Почему я должен писать тут Empty, если компилируется и без этого?

    Само перечисление без Elem компилируется, но вот сконструировать реальный список без завершающего пустого узла не выйдет, потому что он должен был бы быть бесконечным.

    > Что такое Elem?

    Это один из вариантов объявляемого перечисления List, который содержит два безымянных поля понятно каких типов.

    > Я не обьявлял ее дополнительно и не нашел ее упоминания в документации, но оно работает.

    Это просто простейший синтаксис перечислений (enum'ов), который в любом учебнике по расту описывается, например в растбуке: https://doc.rust-lang.org/book/ch06-01-defining-an...
    Ответ написан
    Комментировать
  • Что такое mod в Rust?

    bingo347
    @bingo347
    Crazy on performance...
    mod - это объявление дочернего модуля/пространства имен
    Есть 2 способа объявления - через блок и через отдельный файл:
    // через блок
    mod some_module {
      // тут изолированное пространство имен
      pub fn hello() {
        println!("Hello world");
      }
    }
    fn main() {
      some_module::hello(); // Hello world
    }
    
    // подключаем модуль из файла ./some_other_module/mod.rs или ./some_other_module.rs
    mod some_other_module;

    так же через оператор pub можно делать реэкспорт модуля целиком, делая тем самым структуру пространств имен Вашего крэйта
    Ответ написан
    Комментировать
  • Как реализовать поиск по Linked List?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Что я делаю не так?
    Не занимаетесь отладкой своей программы. Если не умеете пользоваться отладчиком, то возьмите лист бумаги, карандаш, и пошагово пройдите всю свою программу.
    Если таки ничего не поможет
    node->value на первом же элементе равняется нулю, соответственно отрабатывает последняя ветка условия и возвращает false.
    Ответ написан
    Комментировать
  • Как реализовать поиск по Linked List?

    myjcom
    @myjcom Куратор тега C++
    Условие
    bool find(node* n, int value)
    {
        node* ptr = n;
        while(ptr != nullptr)
        {
            if(ptr->value == value) return true;
            ptr = ptr->next;
        }
        return false;
    }
    
    node* find(node* n, int value)
    {
        node* ptr = n;
        while(ptr != nullptr)
        {
            if(ptr->value == value) return ptr;
            ptr = ptr->next;
        }
        return ptr;
    }
    
    node* result = find(...);
    if(result)
    {
        //...
    }
    Ответ написан
    2 комментария
  • Как решить задачу на сортировку?

    @Wexter
    Можно делать ввод и проверку в одном цикле с ресайзом, не нужно будет ещё два раза проходить.
    Так-же вы проходы делаете по строкам при проверке, а не столбцам
    Ответ написан
    Комментировать