Hej
Sitter här och försöker lära mig lite C++ på egen hand. För att förstå mig på det där med vectorer och pekare så har jag kodat ihop en liten grej där en vector skickas till en funktion och i denna funktionen så görs en swap för att byta plats på två element i vectorn. Detta funkar som det skall. Men när jag sedan skall skriva ut vectorn så blir det en massa annat som skrivs ut i stället.
Lite exempel på vad koden innehåller.
Prototypen:
void swapFunkt(vector<int> *sortVekt, int x, int y);
Skapadet av vectorn:
vector<int> bytVektor;
Anrop av funktionen;
swapFunkt(&bytVektor, tal1, tal2);
Själva funktionen swap:
void swapFunkt(vector<int> *sortVekt, int x, int y)
{
swap (sortVekt[x], sortVekt[y]);
}
Utskriften i main (ligger i en for-loop):
cout << bytVektor.at(i)<< endl;
Skickar jag t.ex. med att elementen 0 och 2 skall byta plats och att dessa från början innehåller 15 och 5 så borde det ju efter ändringen skrivas ut 5 resp 15. Men i stället så skriver programmet ut -1 och 2088857568.
Jag förmodar att det har med pekarna att göra men jag har inte klurat ut vad jag skall ändra för att få en korrekt utskrift.
MVH
Anders