Как задать переменные само количество которых также переменно? (пояснения внутри, С++) - вопрос №2394084

Для решения системы уравнений мне необходимо задать параметры. Выглядит это примерно так
А B C D
A1 B1 C1 D1
A2 B2 C2 D2
Am Bm Cm Dm, где
m-количество «строк» с однотипными переменными задаётся изначально. (В моём случае А В С D- параметры производственных помещений, m-количество помещений, соответственно для каждого помещения они свои)
С этим я разобрался ( путём создания матрицы векторов или же динамической двумерной матрицы) и файла с данными, скоторый считывается в матрицу.) Соответственно получаются уравнения типа matrix[1][2]*a+matrix[1][3]*b=c
Но только переменная В включает в себя тоже множество чисел
(В11 В12 В13,… В1i )
где i-количество переменных В, тоже задётся изначально.
Также в отдельных случаях В11 может включать множество В111 В112 В113 В11j На ум приходит попытаться сделать матрицу векторов, состоящую из отдельных векторов (переменной длины). Грубо говоря «матрицу из матриц» Возможно ли это вообще и возможно ли будет в этом случае обращаться к переменным, при написании уравнений. Или возможно другое решение?
31.03.17
2 ответа

Лучший ответ по мнению автора

Здравствуйте.

«STL — это наше всё».
Конечно всё это можно. Используйте векторы, списки, коллекции, деки и пр. Все создавайте динамически.
Только умные указатели используйте или подчищайте всю память сами корректно.
Если не хватит STL — есть Boost и тысячи других библиотек.

Плюс, Вам в данном случае могут помочь шаблоны — автоматически нагенерировать сколько типов (или классов) сколько нужно. Неплохое описание здесь
01.04.17
Лучший ответ по мнению автора

Другие ответы

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

если алгоритм итерационный, и на каждом шаге известны размерности матриц и векторов, нет проблемы создавать массивы динамически самостоятельно. главное что бы в алгоритме, в правильном месте, эти объекты освобождали память

то есть нет строгих рецептов — когда надо решить быстро простое, проще на готовы вещах (коллекции, очереди, стеки, массивы из библиотек) но надо просто набивать руку на их применениии

когда на ювелирно решить редкую задачу, с оптимизацией по скорости и/или памяти, самое время «изобретать велосипед». но опыт применения типовых решений всегда на пользу качества собственного решения

ps еще есть словари и хеш-таблицы, но их применение оправдано в более специфических ситуациях
31.03.17
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store