Ответы пользователя по тегу Алгоритмы
  • Как реализовать очередь объектов класса на C++?

    Класс player у вас не содержит явно объявленного деструктора. В то время, как в методе void player::enqueue(int value) вы выделяете динамическую память. Скорее всего, вы поимеете утечку памяти.
    Используйте умные указатели, либо напишите деструктор, который все подчистит.
    Сам прототип метода void player::enqueue(int value) архитектурно не верный. Аргументом должен быть не int. В в зависимости от того, что вы в конечном итоге хотите, вам нужно реализовать либо void player::enqueue(const card&), либо void player::enqueue(card&&), либо оба сразу.
    Вообще работа с сырыми указателями в C++ не самая лучшая идея. Опять таки не зная окончательную задачу сложно говорить, но вам нужно возвращать в player::dequeue() либо умный указатель либо ссылку на объект либо сам объект. Но не указатель.
    Класс card у вас хранит информацию о следующей карте. Это опять таки не верное архитектурное решение. Этот класс должен быть максимально простым. А очередь должна быть реализована отдельно. Сейчас у вас какое-то странное размазывание логики класса player по двум классам.
    Почему бы вам не использовать стандартный контейнер queue из STL?
    Ответ написан