Vector an Funktion übergeben



  • Hallo NG,

    ich möchte zur Weiteren Bearbeitung einen Vector an eine Funktion übergeben. Ich dachte das ginge ganz einfach, aber irgendwie hab ich da was nicht kapiert.

    Ich dachte das würde so gehen.

    void machMal(vector<int> *vielZeug){
    ...
      ... (*vielZeug).irgendwas() ...;
    ...
    }
    
    int main(int argc, char *argv[]){
      vector<int> vieleZahlen();
      ...
      vector<int> vieleSachen();
    
      ...
      machMal(&vieleZahlen); // Das hier wird angemeckert
      ...
    
      return SUCCESS;
    }
    

    Aber das mochte der Compiler nicht. Er meinte:
    cannot convert ‘std::vector<int, std::allocator<int> > ()()’ to ‘std::vector<int, std::allocator<int> >’ for argument ‘1’ to ‘void machMal(std::vector<int, std::allocator<int> >*)´

    Und das macht mich gerade überhaupt nicht schlauer. Warum funktioniert mein Code nicht und wie mach ich das richtig?

    Grüße und Danke schon mal,
    M. Incani



  • Machs mal so

    void machMal(vector<int>& vielZeug){
    ...
      ... vielZeug.irgendwas() ...;
    ...
    }
    
    int main(int argc, char *argv[]){
      vector<int> vieleZahlen; //Klammern weg, sonst ist es eine Funktion
      ...
      vector<int> vieleSachen;
    
      ...
      machMal(vieleZahlen); // Das hier wird angemeckert
      ...
    
      return SUCCESS;
    }
    


  • Ehrlich, ich weiß garnicht wer die da hingemacht hat.

    Danke!
    M. Incani

    Braunstein schrieb:

    Machs mal so

    vector<int> vieleZahlen; //Klammern weg, sonst ist es eine Funktion
    S;
    }
    

Anmelden zum Antworten