Nano Hash - криптовалюты, майнинг, программирование

Добавление элементов в очередь

Я должен моделировать работу аэропорта с одной взлетно-посадочной полосой в течение заданного периода времени. Что я сделал, так это создал очереди для ожидания самолетов, готовых к взлету и посадке соответственно. Я создал класс для представления самолета в связи с тем, что мне необходимо следить за тем, как долго он находится в очереди. Таким образом, чтобы добавить «самолет» в любую очередь, проверяется условие (функция, которая возвращает true/false на основе случайности), и если оно истинно, добавляется самолет. Моя проблема в том, что есть ли способ объявить новый «самолет», а затем добавить его в очередь? Например, предположив, что «посадочная площадка» — это уже объявленная очередь:

if(condition)
    create plane
    landing.push(created plane)
26.02.2015

  • Каков фактический тип данных, который содержит ваша очередь? Это Plane, Plane*,...? 26.02.2015

Ответы:


1

Из вашего вопроса кажется, что все, что вам нужно сделать, это:

if (condition)
    landing.push(Plane(/*argumnts, if any */));

Я предполагаю, что ваш контейнер создает копии.

Пример:

#include <queue>

class Plane
{
   public:
     Plane() {}
};

std::queue<Plane> landing;

int main()
{
   landing.push(Plane());
}

Живой пример: http://ideone.com/TyTtlc

26.02.2015
  • Я не думаю, что он создает копии, как именно мне это сделать? 26.02.2015
  • Вы должны точно сказать нам, что это за queue. Это std::queue? Если это std::queue, то он делает копии при вызове push. 26.02.2015
  • Его очереди STL, также когда я пробую то, что вы предложили, подчеркивает это и говорит, что имя типа не разрешено, что имеет смысл, потому что вы на самом деле ничего не нажимаете, если делаете это? 26.02.2015
  • Посмотрите еще раз на мой пример. Вы создаете временный объект Plane. Вы, должно быть, забыли свои скобки. 26.02.2015

  • 2

    Если вы считаете очередь особым массивом, вам может быть проще. Вы помещаете объект в очередь, например, BigInt или плоский объект в вашем случае (в зависимости от того, как вы реализуете очередь). Вы можете либо вызвать конструктор Plane в скобках, либо создать объект-плоскость отдельно и поместить его в очередь. Итак, наиболее интуитивно:

    посадка.push(Плоскость(а,б...));

    or:

    Плоскость p = новая плоскость (a, b...); посадка.толчок(р);

    Если вы написали свой собственный класс очереди, то это действительно зависит от того, как вы реализуете метод push. Вы просто берете ссылку на объект плоскости и создаете для него узел или создаете объект плоскости в методе push?

    26.02.2015

    3

    Да? Не очень понятно, что вы спрашиваете. Вы просто запустите свой конструктор или что у вас есть, чтобы создать плоскость и поместить ее в очередь.

    26.02.2015
  • Я просто немного смущен тем, что вы на самом деле вставляете в стек. На что заменить звездочку в: Landing.push(*) 26.02.2015
  • Также как мне вызвать конструктор, если я еще не создал объект? 26.02.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..