/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
STL-træ
Fra : Christian Larsen


Dato : 20-02-04 17:00

Halløjsa!

Jeg er kommet i den situation, at jeg skal bruge en træ-struktur til at
opbevare informationer om mappe-strukturen på en harddisk. Jeg har aldrig
brugt STL for alvor, men har besluttet mig for, at jeg vil give det en
chance nu. Desværre synes jeg ikke, jeg kan finde en STL-container, der
umiddelbart kan klare denne opgave. Jeg har søgt på google, og første hit
var dette:

http://www.codeproject.com/useritems/Simple_STL_tree.asp

Som kogt ned er:

<Udsnit>

// Simple tree
#include <vector>

// Template definition

template<class CItem> class CTree
{
public:
// Tree Item properties
CItem item;

// Children items
std::vector<CTree*> children;
};

</Udsnit>

Det var også noget lignende jeg selv havde overvejet, men er det ikke
muligt at undgå pointere, så jeg ikke selv skal allokere/frigøre hukommelse
til children-træerne? Findes der evt. en smartere/mere robust løsning på
dette problem? Det er sikkert ikke første gang nogen har stillet dette
spørgsmål. Håber i kan hjælpe :)

Venlig hilsen
Christian Larsen

 
 
Troels Arvin (20-02-2004)
Kommentar
Fra : Troels Arvin


Dato : 20-02-04 20:46

On Fri, 20 Feb 2004 16:00:29 +0000, Christian Larsen wrote:

> Desværre synes jeg ikke, jeg kan finde en STL-container, der
> umiddelbart kan klare denne opgave.

Hvis STL ikke har dét, man søger, kan det ofte være en god idé at gå
til Boost. Boost har bl.a. et graf-bibliotek:
http://boost.org/libs/graph/doc/table_of_contents.html

- Men ellers så er den løsning, du foreslår da ikke så dum igen. Du
kan fx. lade destruktoren for en CTree-knude stå for at nedlægge sine
børn, og så burde det kun være et spørgsmål om at huske at få
nedlagt rod-knuden.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Christian Larsen (20-02-2004)
Kommentar
Fra : Christian Larsen


Dato : 20-02-04 21:22

Troels Arvin <troels@arvin.dk> wrote in news:pan.2004.02.20.19.46.29.386652
@arvin.dk:

> On Fri, 20 Feb 2004 16:00:29 +0000, Christian Larsen wrote:
>
>> Desværre synes jeg ikke, jeg kan finde en STL-container, der
>> umiddelbart kan klare denne opgave.
>
> Hvis STL ikke har dét, man søger, kan det ofte være en god idé at gå
> til Boost. Boost har bl.a. et graf-bibliotek:
> http://boost.org/libs/graph/doc/table_of_contents.html

Har hørt navnet før, men det kan da være man skal kigge nærmere på det :)

> - Men ellers så er den løsning, du foreslår da ikke så dum igen. Du
> kan fx. lade destruktoren for en CTree-knude stå for at nedlægge sine
> børn, og så burde det kun være et spørgsmål om at huske at få
> nedlagt rod-knuden.

Det er også det, der blev min løsning, og det fungerer egentlig meget godt.
Men du skal have tak for hjælpen :)

Venlig hilsen
Christian Larsen

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408182
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste