Gå til innhold

Anbefalte innlegg

typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();

Slik låter koden, og slik låter mine problemer:

Jeg skjønner ikke hvorfor vi definerer vec_sz. Ut ifra det jeg skjønte av boka så er vec_sz bare en forkortelse for vector<double>::size_type, og det er greit nok.

Men når vi begynner å definere variabler av typen vec_sz, så går det litt i surr.

Hvordan kan dette ha seg? Hvorfor skal vi definere en egen type for dette? Er det ikke like greit med:

vector<double>; 
int size = homework.size();

?

 

Noen som vil hjelpe??

Lenke til kommentar
Videoannonse
Annonse

vector<..>::size() returnerer ikke (nødvendigvis) int, men den returnerer garantert size_type.

 

Kanskje, size_type er definert som int .. og det vil da fungere like greit med det du har brukt i paste nr. 2.

Kanskje, size_type er definert som unsigned long .. og det vil da fungere like greit med det du har brukt i paste nr. 2, helt til et visst punkt, til size() returnerer noe som ikke får plass i en int f.eks.

 

Det er bedre å la biblioteket avgjøre hvilken type vector<..>::size() returnerer, for i forskjellige situasjoner kan size_type være forskjellig.

Endret av søppel
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...