Я работаю над небольшим научным проектом, связанным с тестированием цепей с использованием непрерывных методов.Программа будет анализировать файлы определений схем и затем создавать легко модифицируемую структуру графа, представляющую схему. После этого в этот граф вносятся определенные изменения, и он сортируется топологически.После сортировки граф преобразуется в статическую структуру, которая состоит из списка массивов, где каждый массив соответствует определенной степени топологической сортировки.После этого можно легко смоделировать схему, поскольку вы можете положиться на порядок сортировки и последовательно обработать модель.
Теперь это все хорошо и логично, но два упомянутых мною графика представляют собой пользовательские структуры данных, которые:
1) Не построены полностью в соответствии со спецификациями STL (в любом случае, это было бы для меня длинным и сложным - графики намного сложнее, чем векторы и списки)
2) Для второго графика япредположим, что это нельзя изменить, и используйте вектор векторов или список векторов для скорости.
3) Набор операций, доступных для моих графиков, ограничен и отражает потребности моего проекта.
4) Код прост.
Теперь я учусь на третьем курсе по ИТ, и после прохождения курса по разработке программного обеспечения и после прочтения некоторого реального кода, мне интересно:
1) Может (или даже может) код быть таким простым?
2) Не нарушаю ли я ни один из тысяч принципов разработки программного обеспечения, делая предположения оданныеструктуры?
3) Должен ли я действительно всегда соответствовать спецификациям STL для всех структур данных, которые я создаю в этом и будущих проектах?
Этот проект использует C ++.
Спасибо за внимание!Буду признателен за фундаментальный и теоретический ответ на эти вопросы, а также за пример практического подхода к этой проблеме.