Gå til innhold

Spm. ang indexar i vectorar.


Anbefalte innlegg

Hei!

Eg lurer på ein ting.

 

Om eg har ein double med verdien 8,5 som skal fortelje kor midt-elementet i ein vector er, korleis skal eg gjere det då?

 

vector[8,5] -----> Vil dette gi ein verdi, eller vil det gi verdien til den som har 8 i index, eller den som har 9 i index?

 

Litt merkeleg, dette!

 

Eg har nemleg ein double som endrer seg etter kor mange element som er i. Eg skal finne medianen, og då må eg vite om 8,5 vert runda opp til 9 eller skoren av til 8.

 

Takk! :)

Lenke til kommentar
Videoannonse
Annonse

Tall blir alltid rundet nedover, så 8,5 vil bli 8, samme med 8,9 for den saks skyld.

Det er mulig jeg blander mellom C++ og assembly nå da :blush:

 

Men unasett så kan du ikke skrive vector[8.9] fordi indexeren kun tar integer som parameter, så du må i så fall caste til integer først

vector[(int)8.5]

Lenke til kommentar

sikker på at det ikke står 8, 5?

edit: kanskje forklare litt nærmere.

 

Dette kan brukes i multidimensjonale arrays, altså matriser i dette tilfellet, som har to dimensjoner.

 

En todimensjonal array kan defineres på to måter:

Som et array av arrays, eller en array som blir delt opp.

 

Nå er ikke jeg helt sikker på syntaksen her, siden jeg som regel gjør slike ting manuelt, men noe slikt:

// Vanlig array med to dimensjoner
int[,] arr;
// Array av array
int[][] arr;

 

Hvis man vil oversette begge til pekere, ser de slik ut:

// Vanlig array med to dimensjoner
int *arr;
// Array av array
int **arr;

Endret av GeirGrusom
Lenke til kommentar

Hehe, no når eg faktisk brukte hjernen min, så fann eg ut at ein median faktisk kan vere eit deimaltal... :D

 

Oppgåva gjekk ut på å lage eit program der ein skulle taste inn fleire verdiar etterfulgt av Ctrl + Z. Så skulle ein gi bådde gjennomsnittet og medianen.

Lenke til kommentar

Nei, slik gjer eg det:

typedef vector<double>::size_type vecsz;
vecsz size = numbers.size();
vecsz mid = size / 2;
double median;
double average = sum / ant;
median = size % 2 == 0 ? (numbers[mid] + numbers[mid-1]) /2 : numbers[mid];

 

PS: Det er vector.size().

Endret av Arne
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...