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 nicht

    temp.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


Anmelden zum Antworten