[C++] Mehrdimensionales dynamisches Array - Seite 2

Seite 2 von 4 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_mehrdimensionales_dynamisches_array_44468/page_2 - zur Vollversion wechseln!


h4de5 schrieb am 14.08.2002 um 10:42

@thorn][bySSG: was is so eine netzliste? (typ)

mit STL pair/vector/matrix lässt sich des sicher lösen (auch wenns vielleicht mit kannon auf spatzen schießen ändelt).

@ringding: des mit dem profiling hab ich auch ned gwust :eek:


thorn][bySSG schrieb am 14.08.2002 um 11:04

A Netzliste "beschreibt" alle Zellen eines Chips , Signalfluß, Register, Gatter und den ganzen anderen Dreck auf einem Chip.
von 10 MB bis ca. 100 MB.
ASCII File, wennst du des meinst


h4de5 schrieb am 14.08.2002 um 11:55

:eek:
gut dann wirst mit an string nix anfangen :P

weis ned, sagt dir die STL was? (standard templäte library) also klassen und funktions Templates.
wenn ich zuhause bin kann ich mich ja nochmal schlau machen, aba sowas kannst ja auch mit liste machen oda ?


class element
{
char *inhalt;
element *pnext;
element ()
{
inhalt = new char (200);
pnext = NULL;
}
}

void main()
{
element *pAnker, *pAkt;
pAnker = new element();

pAkt = pAnker;

//neues Element mit:
pAkt->pnext = new element();

}


ich weis ned obst du umbedingt den direkten zugriff (.. [x] ) brauxt oda ned. aba bei ana 100 Mb file im speicher wird ein array eh dumm sein.


FreakyDrOC schrieb am 14.08.2002 um 12:21

probiers doch mal mit verketteten listen - sollt sogar eine vordefinierte klasse dafür geben


verkettete listen sind w00t!


thorn][bySSG schrieb am 14.08.2002 um 12:28

Die STl sagt ma nur vom Namen her was,
aber deinen Code versteh ich !!!

I brauch den Direkten Zugriff auf die ganzen Daten im Speicher, weil i damit Arbeiten muß. Mit I/O gehts , aber eine Anforderung is Speed , des Pogramm muß so schnell wie möglich sein und bei der Datenmenge
is des verständlich.

Wäre des möglich a char Feld mit 100 MB anzulegen ?
Hab 1,5 GB Ram am Server

mfg


Ringding schrieb am 14.08.2002 um 12:43

Sicher ist das möglich.


Yeahman schrieb am 14.08.2002 um 12:51

Ich würd dir auch eine verkette Liste ans Herz legen, ist von der Performance sicher sehr gut.


h4de5 schrieb am 14.08.2002 um 12:52

@ringding: ja möglich schon aber bei an feld müsstn die 100mb dann als ein stück im speicher liegen, oda ned?

es gibt a stl klasse named: list :)
nur kann ich jez schwer wem die stl beibringen..

@thorn][bySSG: was genau verstehts nicht?

a zugriffs funktion kannst da ja auch machen, dann hast sowas ähnliches wie an direkten zugriff.

/edit: g00gl0r rulez :D
http://www.msoe.edu/eecs/ce/courseinfo/stl/list.htm

#include <list>

list<TYP> list1;

//TYP is ein selber gmachter typ mit den ganzen eigenschaften von so einem Chip.


thorn][bySSG schrieb am 14.08.2002 um 12:52

Hab aber noch nie mit Listen gearbeitet und in meinen Unterlagen is nix gscheites über Listen.

Habts ihr vielleicht a Tut ???


FMFlash schrieb am 14.08.2002 um 12:59

ich kenn die aufgabenstellung zwar nicht wirklich, aber so wie sich das anhört würd ich die klassen und das char array weglassen und stattdessen die daten deiner liste in einer struktur speichern, von dessen typ du dann leicht ein 1-dimensionales array erstellen kannst

typedef struct tagDATA
{
element 1 ...
element 2 ...
element 3 ...
...
} DATA;

...
wenn du weiss wieviele einträge die liste hat ->
DATA* data = new DATA [x];

wenn das posting umsonst war weils zu deiner problemstellung nicht passt, macht auch nix, hab sowieso grad nix zu tun ;)

ps: ich stelle mal meine meinung in den raum das klassen unübersichtlich sind und vorgänge nur unnötig komplizieren


Ringding schrieb am 14.08.2002 um 13:02

Was wollt ihr da alle mit euren Listen, wenn er ein Array braucht? Das Array hat den Vorteil, dass man auf alle Einträge sofort zugreifen kann, und bei der Liste kannst nur einen nach dem anderen abarbeiten.

Array ist natürlich in einem Stück im (virtuellen) Speicher. Wen stört's?


FreakyDrOC schrieb am 14.08.2002 um 13:03

Zitat von FMFlash
ps: ich stelle mal meine meinung in den raum das klassen unübersichtlich sind und vorgänge nur unnötig komplizieren

:confused: oder kanns sein, dasst einfach des klassenkonzept net durchschaut hast?

klassen sind in der regel ein wenig langsamer, aber nicht umsonst rult java!


FreakyDrOC schrieb am 14.08.2002 um 13:05

Zitat von Ringding
Was wollt ihr da alle mit euren Listen, wenn er ein Array braucht? Das Array hat den Vorteil, dass man auf alle Einträge sofort zugreifen kann, und bei der Liste kannst nur einen nach dem anderen abarbeiten.

Array ist natürlich in einem Stück im (virtuellen) Speicher. Wen stört's?

arrays sind lame
du sagtest sie sind in einem stück, jetzt rat amal was passiert, wenn du dynamisch was dazuhängen willst...
neuer speicherbereich wird angelegt (alte größe + neu)
gesammtes array wird in neuen speicherbereich kopiert
:bash:


FMFlash schrieb am 14.08.2002 um 13:07

Zitat von FreakyDrOC
:confused: oder kanns sein, dasst einfach des klassenkonzept net durchschaut hast?
klassen sind in der regel ein wenig langsamer, aber nicht umsonst rult java!

ich halts nicht für notwendig variablen und funktionen in eine klasse zu stecken die wiederum in sektionen unterteilt ist bei denen man aufpassen muss (vor allem beim datenaustausch von klassen untereinander) das sie sich auch ja "sehen" können, und als krönung für jede klasse 2 seperate files mit deklaration (.h) und implementierung (.cpp) zu verwalten

:confused: oder kanns sein, dasst einfach kein anderes konzept kennst als klassen


Ringding schrieb am 14.08.2002 um 13:08

@FreakyDrOC:

1. Wer sagt, dass er das unbedingt muss?
2. Wenn man es muss, dann macht man es selten. Die entsprechende Klasse der STL macht das natürlich automatisch.
3. Wo ist das Problem? Braucht er halt 200MB von 1.5 GB, und die auch nur kurzfristig.

Natürlich haben sowohl Arrays als auch Listen ihre Berechtigung. Nachdem ich aber nicht weiß, was das Programm tut, weiß ich auch nicht, ob eher die Liste oder eher das Array günstig ist. Jede Variante hat ihre guten und schlechten Seiten. Auch sehen wir hier ein typisches Beispiel für den alten Performance/Memory Trade-Off.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026