Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.09.2008, 12:53 Titel: |
|
|
David hat Folgendes geschrieben: | newby hat Folgendes geschrieben: |
@david
ich will überhaupt keine headerdatei inkludieren, ich will pures c++^^ |
Trotzdem ist der Ansatz über verlinkte Listen Unsinn.
@DirectXer:
Du meinst die Standard C++ Bibliotheksheader, nicht STL, oder? Außerdem sind die Unterschiedlichen Implementationen der Standard Bibliothek nicht unbedingt "effektiv". |
Ich meine die STL(speziell den Vektorcontainer) und die kann man im Großen und ganzen als effektiv und effizient bezeichnen. Die Standard C++ Bibliothek ist nicht in allen Bereichen effektiv, aber sie wurde nicht von Amateuren entworfen und du kannst davon ausgehen dass die Entwickler sich mit den strengen Richtlinien einiges gedacht haben. Die verschiedenen Implementierungen, die man geläufig so erhält, sind in dem Punkt der STL zum größten Teil auf Effektivität, Flexibilität und Effizienz ausgelegt.
btw: Es muss kein Unsinn sein, so etwas selbst zu entwerfen, da man wie gesagt dadurch das tiefere Verständnis für gängige Patterns und Datenstrukturen erlernt. Das ist auch das, was er damit bezwecken möchte.
Gruß DXer |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.09.2008, 13:41 Titel: |
|
|
DirectXer hat Folgendes geschrieben: |
Ich meine die STL(speziell den Vektorcontainer) und die kann man im Großen und ganzen als effektiv und effizient bezeichnen. |
Die STL hat grundsätzlich überhaupt nichts mit der Standard Bibliothek von C++ zu tun. In die Standardbibliothek sind Teile/Ideen aus der STL eingeflossen. Dennoch bleiben das zwei grundsätzlich unterschiedliche Bibliotheken die komplett unabhängig Entwickelt werden (wurden).
DirectXer hat Folgendes geschrieben: |
Die Standard C++ Bibliothek ist nicht in allen Bereichen effektiv, aber sie wurde nicht von Amateuren entworfen und du kannst davon ausgehen dass die Entwickler sich mit den strengen Richtlinien einiges gedacht haben. |
Die Standardbibliothek ist eine Sammung von guten/effizienten Problemlösungen. Leider wird (muss) versucht (werden) allgemein eine bestmögliche Performanz zu bieten. Daher wird oftmals ein Mittelweg eingeschlagen, sodass in speziellen Fällen durchaus wesentlich performantere Lösungen möglich wären.
DirectXer hat Folgendes geschrieben: |
Die verschiedenen Implementierungen, die man geläufig so erhält, sind in dem Punkt der STL zum größten Teil auf Effektivität, Flexibilität und Effizienz ausgelegt. |
Das ist richtig (ich entschuldige mich vielmals wegen des Fehlers). Der Punkt ist: Es kann k(aum )eine Lösung existieren die ein höchstmas an Effektivität, Flexibilität und Effizient bietet. Meistens schließen sich die einzelnen Fälle gegenseitig aus, wo wir wieder bei den Speziallösungen wären.
DirectXer hat Folgendes geschrieben: |
btw: Es muss kein Unsinn sein, so etwas selbst zu entwerfen, da man wie gesagt dadurch das tiefere Verständnis für gängige Patterns und Datenstrukturen erlernt. Das ist auch das, was er damit bezwecken möchte. |
Hatte ich auch nicht behauptet. Aber der Ansatz, das obige Problem, mit einer verlinkten Liste aus bool'schen Werten zu lösen ist eher verkehrt (oder sagen wir mal suboptimal). |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 22.09.2008, 13:52 Titel: |
|
|
meine ausgabe sieht so aus:
Code: |
Adresse: 0012FE3C
//das ganze dann 20 mal genau so untereinander, die adresse ist immer gleich.
|
|
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.09.2008, 13:57 Titel: |
|
|
Ja, weil du jedesmal die Adresse des Zeigers aus gibst. Lass den Adress-Operator weg, dann passts.
CPP: | cout<<"Adresse: "<<newelement<<endl; |
|
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 22.09.2008, 14:14 Titel: |
|
|
ok, das funktioniert jetzt alles soweit, aber er gibt irgendwie die letzte stelle nicht aus:
CPP: | BigInteger::BigInteger(int startvalue)
{
firstelement = 0;
lastelement = 0;
int rest = 0;
int quotient = startvalue;
while(true)
{
rest = quotient % 2;
quotient = quotient / 2;
Element *newelement = new Element;
(*newelement).value = (bool)rest;
if(lastelement != 0) (*lastelement).next_element = newelement;
lastelement = newelement;
(*newelement).next_element = 0;
if(firstelement == 0) firstelement = newelement;
if(quotient == 0) break;
}
Element *element = firstelement;
while(true)
{
cout<<(*element).value;
element = (*element).next_element;
if((*element).next_element == 0) break;
}
}
|
wisst ihr warum die letzte stelle fehlt? |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.09.2008, 14:26 Titel: |
|
|
Die Abbruchbedingung deiner Iteration ist falsch.
CPP: | if(element == 0) break; |
Sollte das Problem lösen. |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 22.09.2008, 14:31 Titel: |
|
|
jo, hast recht vielen dank für eure antworten |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 22.09.2008, 16:32 Titel: |
|
|
Was habt ihr eigentlich dagegen, dass er seine eigene verkettete Liste schreibt? Sollte er wirklich std::list verwenden ohne das wenigstens einmal selbst gemacht zu haben? Und ich denke da ist es völlig egal was er berechnen will. Hauptsache er hat ein Problem, wozu er meint,
eine verkettete Liste zu brauchen. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 22.09.2008, 16:50 Titel: |
|
|
PeaceKiller hat Folgendes geschrieben: | Was habt ihr eigentlich dagegen. |
Niemand hast etwas dagegen... |
|
Nach oben |
|
|
|