Probleme bei function overloading



  • aber im int-Feld kommt die Zahl "2" zweimal vor. wenn ich die z.B. suche gibt er mir nur den Index der ersten. Wie müsste sie aussehen wenn ich egal wieviel gleiche Zahlen hab und deren Indices ausgeben lassen will.



  • also ich hab mal eins gebastelt (nicht in der ide, weil ich hier keine habe. ES KANN ALSO SEIN, DAS EINIGES FEHLT ODER FEHLERHAFT IST)

    int* find(int* array,int size,int number,int &found)
    {
     int *returnit;
     for(int i=0;i<size;i++)
     {
      if(array[i]==number)
      {
       returnit[found]=i;
       found++;
      }
      else{}
     }
     return returnit;
    }
    
    int main(int argc, char* argv[])
    {
     int test[5];
     int found=0;
     test[0]=1;
     test[1]=2;
     test[2]=3;
     test[3]=2;
     test[4]=2;
    
     int *result=find(test,5,2,found);
     for(int i=0;i<found;i++)
      cout<<result[i]<<endl;
     getch();
            return 0;
    }
    

    Das soll nur zeigen, wie ich es gemeint habe!



  • Vielleicht solltest du für returnit auch mal Speicher vereinbaren. Und was soll dieser else Zweig?



  • Braunstein schrieb:

    Vielleicht solltest du für returnit auch mal Speicher vereinbaren. Und was soll dieser else Zweig?

    yupp hast recht, wie gesagt, ich hab hier nix zum programmieren!
    War nur so ausm gedanken!

    Wobei ich ehrlich sein muss, das ich das mit dem if-abfackeln irgendwie immer mach 🙄



  • vector anstelle eines int* wäre hier besser.
    Ich stimme aber MFK zu, dass in der ursprünglichen Aufgabenstellung nichts davon steht alle Indizes zu finden.



  • Braunstein schrieb:

    vector anstelle eines int* wäre hier besser.
    Ich stimme aber MFK zu, dass in der ursprünglichen Aufgabenstellung nichts davon steht alle Indizes zu finden.

    yup wieder recht!

    Nur da ich gesehen habe, wie weit der threadsteller sich mit c++ auskennt, dachte ich nciht, das schon STL oder so jemals gehört wurde...!
    Darum habe ich int* genommen!


Anmelden zum Antworten