Max25 schrieb:
diese Möglichkeit zum ermitteln der Länge habe ich im Internet gefunden.
Und sie ist kompletter Quark. Nicht schlecht, sondern falsch. Nicht einmal nahe dran.
Falls die Methode nicht so gut ist, würde ich gern wissen wie man die Länge des Feldes sonst ermitteln kann?
Gar nicht, musst du mitschleppen.
Da du mit den Klassen Monomial und Polynomial gerade im Begriff bist, gleich zweimal std::vector nach zu programmieren, bietet sich ganz dringend folgende Vorgehensweise an: Du programmierst einmal std::vector nach. Das ist eine ganz einfache Klasse, die intern ein dynamisches Feld verwaltet. Also genau das, was deine beiden Klassen im Moment tun (mit entsprechender Codeverdoppelung), aber ohne die fuer Monomials und Polynomials typischen Methoden. Also im einfachsten Fall bloss Zugriff auf die Elemente.
Dann benutzen Monomial und Polynomial jeweils einen dieser nachprogrammierten std::vector. So faellt sehr viel unnoetige Komplexitaet bei diesen beiden Klassen weg, weil sie sich ganz und gar auf ihre Kernaufgaben konzentrieren koennen, ohne sich um Speicherverwaltung zu kuemmern (Wieso sollte ein Polynom sich mit Speicherverwaltung auskennen muessen? Davon habe ich in Mathe nichts gehoert).
Der nachprogrammierte vector kann sich hingegen voll auf Speicherverwaltung konzentrieren, denn das ist seine einzige Aufgabe. Da brauchst du das bloss ein einziges Mal richtig zu machen und kannst es dann immer wider neu benutzen. Beispielsweise gehoert zu der Speicherverwaltung auch, dass man sich irgendwie die Groesse eines Feldes merkt. (Der "richtige" vector merkt sich uebrigens normalerweise nicht die Groesse, sondern Anfang und Ende und rechnet bei Bedarf die Groesse aus, aber das ist ein anderes Thema, das jetzt zu weit fuehren wuerde.)