eigener dateentyp
-
Gucky schrieb:
so, ich hoffe, dass man das so machen kann
BigNum operator+(BigNum const& rhs) { BigNum temp = *this; short int v = 0; vector<unsigned long>::const_iterator j = temp.ziffern.end()-1; for(vector<unsigned long>::const_iterator i = rhs.ziffern.end()-1; i != rhs.ziffern.begin(); --i) // Bei der schrifltichen addition geht amn immer von rechts nach links { if (*i + *j + v >= 10) { temp.ziffern.push_back(*i + *j + v - 10); v = 1; } else { temp.ziffern.push_back(*i + *j - 10); v = 0; } ++j; } reverse(temp.ziffern.begin(), temp.ziffern.end()); // Ziffern werden in die richtige reihenvolge gebracht return temp; }
Das tönt gut.
Aber schau dir mal rbegin und rend an.
Vielleicht noch besser, Du speicherst immer alle Zahlen "verkehrt herum" (dann brauchste rbedin/rend nur bei der Ausgabe).
-
dabei dreht sich doch aber nicht das push_back um oder??
und wie ich grad festgestellt habe geht insert auch nichttemp.ziffern.insert(1, *i + *j + v - 10);
ich hab noch eine andere frage und zwar wie kann ich in der main funktionen typen deklarieren?
wie man es mit einen typ wie int macht würde es so gehen:BigNum v1; v1.zahl = 10000000000;
so geht es aber nicht.
muss ich es vielleicht mit der set methode machen??
-
mir ist grad eingefallen ich machs am besten mit nem überladenen = operator wenn das geht