Массивы и двусвязные списки для моделирования очереди

Я работаю над заданием для школы, имитируя очередь со студентами и несколько открытых окон в ЗАГСе.

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

Я просто ищу какое-то направление или более подробное объяснение того, как можно использовать массив, чтобы просто хранить время, когда каждый ученик находится в окне, а не другой двусвязный список?


person Melissa    schedule 28.03.2015    source источник
comment
По крайней мере, выясните свои вопросы из этой уродливой стены текста.   -  person πάντα ῥεῖ    schedule 28.03.2015
comment
Я пытался сделать это очень ясным, но сначала объяснил ситуацию. Я постараюсь отредактировать, чтобы сделать его более ясным..   -  person Melissa    schedule 28.03.2015
comment
Вы слышали об этих вещах, называемых абзацами, и других параметрах форматирования текста, позволяющих сделать текст удобочитаемым для людей?   -  person πάντα ῥεῖ    schedule 28.03.2015
comment
Да, я сделал это, когда набирал его, но он не отображался правильно. Не нужно быть грубым. Сейчас я сократил его и просто опубликую свой другой вопрос отдельно. Я все еще немного новичок, поэтому я просто пытаюсь привыкнуть к этому, вот и все...   -  person Melissa    schedule 28.03.2015
comment
Можете ли вы удалить отрицательный голос сейчас?   -  person Melissa    schedule 28.03.2015
comment
Что ж, вы можете использовать std::queue<std::shared_ptr<Student>> для представления очереди студентов, ожидающих у окна счетчика. Обратите внимание, что std::queue фактически использует базовый массив (std::vector) по умолчанию. До сих пор непонятно, о чем вы на самом деле спрашиваете. Возможно, вам следует предоставить образец кода, чтобы лучше понять, что вам на самом деле нужно. (Смотрите мои правки, как лучше структурировать, кстати)   -  person πάντα ῥεῖ    schedule 28.03.2015
comment
Хорошо, проблема в том, что мы должны использовать наш собственный класс очереди. Он не хочет, чтобы мы использовали библиотеку STL. Я вижу ваши правки. Я буду работать над сокращением абзацев для будущих постов. Спасибо. И я пытался сначала понять процесс на бумаге, прежде чем писать кучу кода, иначе я обычно включаю свой код.   -  person Melissa    schedule 28.03.2015
comment
Я пытался выяснить, можно ли создать класс окон и создать массив каждого нового класса окон. Это неправильно/неэффективно?   -  person Melissa    schedule 28.03.2015
comment
Если имитация очереди, то почему не односвязный список?   -  person Martin James    schedule 28.03.2015
comment
Это самый действенный способ? Вот что я пытаюсь выяснить... И с наименьшим временем выполнения   -  person Melissa    schedule 28.03.2015


Ответы (1)


Насколько я понимаю, у вас переменное количество студентов и фиксированное количество окон (здания обычно не меняются так часто). Если бы мне нужно было представить это в коде, я бы использовал контейнер с динамическим размером (список, вектор, очередь и т. д.), чтобы содержать всех студентов и массив фиксированного размера для регистров. Это будет воплощать цель реальной ситуации в коде, уменьшая вероятность того, что кто-то другой, использующий ваш код, сделает какие-либо ошибки, связанные с размером офиса регистратора. Часто выбор типа контейнера зависит от его предполагаемого использования!

Таким образом, вы можете создать класс для хранения всех регистров, используя массив фиксированного размера (или даже лучше: размер, заданный шаблоном, если вы используете C++). Затем вы можете написать все свои другие функции, связанные с регистратором, используя заданный аргумент размера и, таким образом, никогда не выходить за пределы своего массива регистратора.

Наконец: массив содержит любую информацию, которую вы хотите хранить. Вы можете хранить в нем только числа (например, int), но вы также можете хранить в нем объекты любого типа! Я хочу сказать следующее: создайте класс Registrar, содержащий всю информацию, которую вы хотите собрать для каждого отдельного регистратора. Затем создайте массив, содержащий объекты Registrar. Затем всякий раз, когда вы обращаетесь к отдельному элементу в массиве, вы можете получить доступ ко всей информации отдельного регистратора через эту единственную ссылку.

person Nathilion    schedule 16.04.2015