Avatar billede c0ld1mp Nybegynder
26. februar 2004 - 23:08 Der er 2 kommentarer og
1 løsning

hjælp med vector i c++

hej

  Hvis jeg har koden

  main:
  vector<int> hej;
hejsa()
cout<<hej[0]

skal give outputtet 1.

  Mit spørgsmål er hvordan får jeg funtionen hejsa til at foretage en ændring i hej der forbliver der bagefter.. Har generelt ingen ide om hvordan man sender en vector som parameter.. En der gider hjælpe?
Avatar billede coldplay Nybegynder
27. februar 2004 - 00:48 #1
Dette skulle virke:

int * hejsa(int *, int *);
int * hejsa(int *x, int *y)
{
    // multiplicer 2. dim. vektor (2) med 5
    int r[6];
    r[2] = 5 * x[1];
    r[3] = 5 * y[1];
    return &r[0];
}

main()
{
    int k_x[] = {30, 70, 90};
    int k_y[] = {40, 80, 30};
    int *v = (int *)malloc(24);
    v = hejsa(&k_x[0], & k_y[0]);
    printf("x' = %d, y' = %d", v[2], v[3]);
    //output 5 * (70,80) = (350,400)
   
    return 0;
}
Avatar billede segmose Nybegynder
27. februar 2004 - 09:04 #2
Du reference overføre din vector (så undgår du også en masse copy ctor/dtor ting):
int hejsa(vector<int>& reftilhej) { reftilhej[0] = 1; }

og kalder så med:
hejsa(hej);
Avatar billede c0ld1mp Nybegynder
11. marts 2004 - 17:52 #3
undskyld jeg havde glemt jeg havde stilt spørgsmållet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis