💬
Logga in
Fuska.se

Vektor.

4 svar · startad

Nivå 3 · Lärling
Trådstartare #1

Jag har en liten fråga som lyder såhär:

Vad är en vektor? :huh:

Jag håller på och tränar C++ men så står det massa grejer vectors(vektorer typ(?)).

 

Nivå 9 · Veteranfuskare
#2

Flyttar till Programmerings forumet.

Nivå 4 · Lärling
20 Oct 2008
Nivå 9 · Veteranfuskare
#4

En vektor är i C++ en grupp objekt av samma typ precis efter varandra i datorns minne.

Till exempel, en vektor av typen int som innehåller tre int objekt kan se ut såhär i datorns minne:

http://img185.imageshack.us/img185/9200/cppvectorint3fl7.jpg

http://img185.imageshack.us/img185/cppvectorint3fl7.jpg/1/w214.png

 

Eftersom att en int(i min dator) är 4 bytes ökar minnesadressen för varje element med 4(hexadecimalt).

 

Koden "int myInt[7];" läses såhär: "myInt är en vektor av datatypen int med sju element(numrerade 0 - 6)".

 

T.ex myInt[2] är värdet i det tredje elementet i vektorn myInt, medans &myInt[2] är adressen till det tredje elementet i vektorn myInt. Om du ska ha tillgång till både värde och adress är dessa två sätt som nybörjare bäst att använda.

 

T.ex myInt är adressen till första elementet i vektorn myInt, och myInt + 2 är adressen till det tredje elementet i vektorn myInt. Det är detta som jag tycker är så bra med C++, man kan göra nästan vad som helst och få samma kod.

 

T.ex *(myInt + 2) är värdet i det tredje elementet i vektorn myInt, och *(&(*(&myInt[2]))) är också värdet i det tredje elementet i vektorn myInt(detta sätt är typ helt onödigt med roligt att veta).

 

Bra att veta: När man skapar en variabel som en vektor hanteras den som en konstant pekare(den pekar hela tiden till samma minnesadress). Ett lätt sätt att få tillgång till värdet i det x:te elementet använder man koden myVector[x - 1].

Senast ändrad:

7 Nov 2008
Nivå 2 · Novis
#5
↗ till inlägget

En vektor är i C++ en grupp objekt av samma typ precis efter varandra i datorns minne.

Till exempel, en vektor av typen int som innehåller tre int objekt kan se ut såhär i datorns minne:

http://img185.imageshack.us/img185/9200/cppvectorint3fl7.jpg

http://img185.imageshack.us/img185/cppvectorint3fl7.jpg/1/w214.png

 

Eftersom att en int(i min dator) är 4 bytes ökar minnesadressen för varje element med 4(hexadecimalt).

 

Koden "int myInt[7];" läses såhär: "myInt är en vektor av datatypen int med sju element(numrerade 0 - 6)".

 

T.ex myInt[2] är värdet i det tredje elementet i vektorn myInt, medans &myInt[2] är adressen till det tredje elementet i vektorn myInt. Om du ska ha tillgång till både värde och adress är dessa två sätt som nybörjare bäst att använda.

 

T.ex myInt är adressen till första elementet i vektorn myInt, och myInt + 2 är adressen till det tredje elementet i vektorn myInt. Det är detta som jag tycker är så bra med C++, man kan göra nästan vad som helst och få samma kod.

 

T.ex *(myInt + 2) är värdet i det tredje elementet i vektorn myInt, och *(&(*(&myInt[2]))) är också värdet i det tredje elementet i vektorn myInt(detta sätt är typ helt onödigt med roligt att veta).

 

Bra att veta: När man skapar en variabel som en vektor hanteras den som en konstant pekare(den pekar hela tiden till samma minnesadress). Ett lätt sätt att få tillgång till värdet i det x:te elementet använder man koden myVector[x - 1].

Du syftar på att 32-bitarsoperativsystem använder 4bytes långa integers?

Vad ska man tro om 64-bitars OS? Att de också har 4 bytes?

 

De har 8 bytes stora integers!

 

Jag fattar inte varför du skriver

*(&(*(&myInt[2])))

Man brukar ju skriva

*(&(*(&(*(&(*(&(*(&(*(&myInt[2])))))))))))

Eller? Har jag fel?

 

Fält är ett annat ord man kan använda istället för vektor. Det kan man inte tro har något med matte, längd och riktning att göra...

 

Senast ändrad:

Vill du vara med i diskussionen?

Bli medlem Logga in