"We are back" « oc.at

[C++] Mehrdimensionales dynamisches Array

thorn][bySSG 14.08.2002 - 08:21 4752 53
Posts

h4de5

-
Avatar
Registered: Sep 2001
Location: bgld
Posts: 1112
@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

Little Overclocker
Avatar
Registered: Jul 2002
Location: Villach
Posts: 53
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

-
Avatar
Registered: Sep 2001
Location: bgld
Posts: 1112
: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

Addicted
Avatar
Registered: Feb 2002
Location: Austria
Posts: 418
probiers doch mal mit verketteten listen - sollt sogar eine vordefinierte klasse dafür geben


verkettete listen sind w00t!

thorn][bySSG

Little Overclocker
Avatar
Registered: Jul 2002
Location: Villach
Posts: 53
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

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Sicher ist das möglich.

Yeahman

OC Addicted
Avatar
Registered: Jul 2001
Location: on top of my sol..
Posts: 1775
Ich würd dir auch eine verkette Liste ans Herz legen, ist von der Performance sicher sehr gut.

h4de5

-
Avatar
Registered: Sep 2001
Location: bgld
Posts: 1112
@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.
Bearbeitet von h4de5 am 14.08.2002, 12:57

thorn][bySSG

Little Overclocker
Avatar
Registered: Jul 2002
Location: Villach
Posts: 53
Hab aber noch nie mit Listen gearbeitet und in meinen Unterlagen is nix gscheites über Listen.

Habts ihr vielleicht a Tut ???

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
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

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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

Addicted
Avatar
Registered: Feb 2002
Location: Austria
Posts: 418
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

Addicted
Avatar
Registered: Feb 2002
Location: Austria
Posts: 418
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

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
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

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
@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.
Bearbeitet von Ringding am 14.08.2002, 13:10
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz