Avatar billede conrad Nybegynder
23. oktober 2003 - 15:26 Der er 11 kommentarer og
1 løsning

Overførsel af array i konstruktor

Jeg har en klasse som skal have et int array med i sin konstruktor. Værdiernne skal kopieres over. Det har jeg lidt problemer med:

1) Er jeg nødt til at give længden på arrayet med i konstruktoren? Og i så fald hvordan fineds den lettest?

2) i min erklæring (int myarray[??]) er jeg nødt til at give en størrelse? kan det lade sig gøre/betale sig at tilpasse dette såfremt det array jeg kommer med at meget mindre? 


Hvad er den nemmeste måde at gøre det på?
Avatar billede conrad Nybegynder
23. oktober 2003 - 15:27 #1
Jeg kan selvfølgelig ogsp bruge en list, men er det at overdrive?
Avatar billede soreno Praktikant
23. oktober 2003 - 15:33 #2
Du kan evt. bruge en markør til at markere sidste entry i arrayet.
F.eks. -1 eller lign.
Det forudsætter at du kender til det indhold som arrayet får.

Jeg ville foretrække et ekstra parameter, length, til metoden.


Du kan også bruge en klasse til at abstrahere over et array (f.eks. stl vector).
Avatar billede conrad Nybegynder
23. oktober 2003 - 15:35 #3
Hvor meget mere "koster" det at bruge vector?
Avatar billede soreno Praktikant
23. oktober 2003 - 15:39 #4
Tjaaa, det tør jeg ikke lige sige.

Men fordelen er at koden til vector er gennemtestet og formentlig temmelig optimeret. Desuden behøver du ikke bekymre dig om trivielle ting som størrelse, søgning og lign.

Det kommer selvfølgelig an på situationen hvad der er optimalt at benytte.

Du kan også lave din egen vector klasse - det er faktisk en god øvelse.
Avatar billede conrad Nybegynder
23. oktober 2003 - 15:54 #5
Jeg kan finde længden af input array og den er max 100.
Jeg fisker lidt efter om det er hurtigst at bruge en vector/list eller bare allokere et array på 100 også risikere kun at bruge de 5 første pladser?
Avatar billede arne_v Ekspert
23. oktober 2003 - 16:10 #6
Jeg ville sende længden med som argument til et array.

Arrays skal allokeres af en bestemt størrelse.

Jeg er ikke i tvivl om at et for stort array er hurtigere end vector (vector
har nemlig sikkert også et for stort array gem).

Men vector er jo på nogen måder en pænere måde at gøre det på.
Avatar billede narrr Nybegynder
23. oktober 2003 - 16:16 #7
Hmm, hvad er det for et program? Jeg tror ikke du behøver at bekymyre dig om en vektor på 100 elementer, medmindre hastighed virkelig er alfa og omega.
Avatar billede conrad Nybegynder
23. oktober 2003 - 17:08 #8
narrr>> Det er en udvidelse af en protokol (DSR) under simulatoren NS2.

Jeg tror jeg bruger et array, når nu jeg kan finde længden af input arrayet uden besvær.
Læg nogle svar og tak for hjælpen
Avatar billede soreno Praktikant
23. oktober 2003 - 17:09 #9
Javel.
Avatar billede conrad Nybegynder
23. oktober 2003 - 20:01 #10
andre en søren der vil have point?
Avatar billede arne_v Ekspert
23. oktober 2003 - 20:04 #11
Jeg har kun gentaget hvad SØren allerede har sagt, så jeg skal
ikke have nogen.
Avatar billede narrr Nybegynder
23. oktober 2003 - 20:12 #12
me neither
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester