Mugaga Skrivet 19 Oktober 2008 Rapport Dela Skrivet 19 Oktober 2008 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(?)). Citera Länk till kommentar Dela på andra sajter More sharing options...
Nafrali Skrivet 19 Oktober 2008 Rapport Dela Skrivet 19 Oktober 2008 Flyttar till Programmerings forumet. Citera Länk till kommentar Dela på andra sajter More sharing options...
Fality Skrivet 19 Oktober 2008 Rapport Dela Skrivet 19 Oktober 2008 http://sv.wikipedia.org/wiki/Vektor Citera Länk till kommentar Dela på andra sajter More sharing options...
Vitdom Skrivet 20 Oktober 2008 Rapport Dela Skrivet 20 Oktober 2008 (redigerat) 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]. Redigerat 20 Oktober 2008 av Vitdom Citera Länk till kommentar Dela på andra sajter More sharing options...
PunkArne Skrivet 7 November 2008 Rapport Dela Skrivet 7 November 2008 (redigerat) 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... Redigerat 7 November 2008 av PunkArne Citera Länk till kommentar Dela på andra sajter More sharing options...
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.