"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:ahkfh3$11sc$2@news.cybercity.dk...
> > Lige et hurtigt spørgsmål, er der nogen grund til at bruge char[]'s når
> man
> > har strings?
>
> Som udgangspunkt bør man i C++ foretrække at bruge "std::string" objekter
i
> stedet for "char[]", når man arbejder med tekst-strenge.
> Det gælder i særdeleshed, når man har med tekst-strenge med variabel
længde
> at gøre.
>
> Der er situationer, hvor "std::string" ikke er passende.
> Ofte vil "std::vector" kunne bruges i den situation, som et bedre
alternativ
> til char[].
> Det er situationer, hvor der ikke er tale en streng, men et array af
> individuelle tegn.
> F.eks. til at holde løsning af en multiple-choise opgave:
> svar 1: a
> svar 2: f
> ...
>
> Der _kan_ være performance grunde, til at foretrække "char[]" frem for
> "std::string".
> Der vil typisk være een heap-allokering involveret i et string objekt -
også
> selvom det ligger på stakken. Det er ikke tilfældet for "char[]".
> void foo()
> {
> std::string str1("hello world"); // propably one heap allocation
> and one memory copy
> char str2[] = "hello world"; // no heap allocation and
one
> memory copy
> const char* str3 = "hello world; // no heap allocation and no memory
> copy
> }
> I forbindelse med tekst-strenge med variabel længde, vil der typisk være
een
> heap allokering involveret - så der må man forvente at "std::string" ikke
> har noget overhead.
> Før man bruger den forklaring, bør man være _sikker_ på at der faktisk er
et
> problem (ved at _måle_), og at det kan løses ved at bruge "char[]"
Oki, jeg takker alle for deres svar
mvh
db