Я разработал быструю и базовую векторную арифметическую библиотеку на C ++. Я вызываю программу из командной строки, когда мне нужно быстрое перекрестное произведение или угол между векторами. Я не использую Matlab или Octave или связанные с ними, потому что время запуска больше, чем время вычислений. Опять же, это для очень простых операций.
Я расширяю эту программу и заставлю ее работать как калькулятор RPN для операций типа:
1 2 3
4 5 6
x
out: -3 6 -3
(указать один вектор, другой вектор и оператор "крест"; выпустить перекрестное произведение)
Стек должен принимать трехмерные векторы или скаляры для таких операций, как:
1 2 3
2
*
out: 2 4 6
Лексер и парсер для этого мини-калькулятора тривиальны, но я не могу придумать хорошего способа создания внутреннего стека. Как бы вы создали стек для размещения векторов или двойников (я свернул свой собственный очень простой векторный класс - менее ста строк, и он делает все, что мне нужно).
Как мне создать простой стек, который принимает элементы класса Vector или типа double?
Спасибо.