C
Frank1978 schrieb:
CStoll schrieb:
Möglichkeit 1: rekursiv
Möglichkeit 2: numerisch
Welche Möglichkeit ist effizienter und schneller?
Die Matrizen werden später ziemlich groß.
Da bin ich leider überfragt - im Zweifelsfall mußt du das beides umsetzen und messen, was schneller geht.
vector<vector<Element> > data;
Mit dem STL-Container "vector" kenne ich mich kaum aus.
Dass ein Vektor von Vektoren eine Matrix ergibt, läuchtet mir schon ein, aber was bedeutet "Element" ?
Du wolltest Kombinationen von Gegenständen haben, damit ist "Element" was immer du als Basisobjekte kombinieren willst. vector<Element> verwende ich hier als Auflistung von diesen Basisobjekten, d.h. als eine der ermittelten Kombinationen, vector<vector<Element>> zur Sammlung aller gefundenen Kombinationen.
vector<> ist in C++ ein dynamisch verwaltetes Array, das recht wenig mit Vektoren im mathematischen Sinn zu tun hat. Für mathematische Anwendungen benötigst du vermutlich eine Spezialbibliothek außerhalb des C++ Standard - oder mußt es selber neu programmieren. (eventuell könnten einige Vektor/Matrix-Operationen mit std::valarray abgebildet werden, aber da bin ich mir nicht sicher)