C++ Quelltext verstehen



  • Hallo,
    ich habe leider große Probleme den folgenden Quelltext zu verstehen. Vielleicht könnte jemand zu jeder einzelnen Zeile die noch nicht kommentiert ist kurz schreiben was deren Funktion ist, bzw. was sie bewirkt. Ich habe leider wenig Ahnung von C++ bzw. vom Programmieren allgemein. Vielen Dank im Voraus 🙂

    #include <iostream> // for using cout
    #include <list> // for using lists
    using namespace std; // for std functions
    typedef list<int>INTLIST;
    void display(list<int>);
    int main()
    {
    int i;
    list<int>list1;
    INTLIST list2;
    // Filling the list with random numbers
    for(i=0;i<4;i++)
    {
    list1.push_back(rand()%10);
    list2.push_back(rand()%10);
    }
    display(list1); // Display the list
    display(list2);
    // Putting first element to the end as well
    list1.push_back(list1.front());
    list1.reverse(); // Reverse list
    list1.sort(); // Sort list
    list1.merge(list2); // Merge two lists
    list1.sort(); // Remove multiple entries #1
    list1.unique(); // Remove multiple entries #2
    return 0;
    }
    void display(list<int>my_list)
    {
    int i;
    list<int>::const_iterator iterator;
    iterator = my_list.begin();
    while(iterator != my_list.end())
    {
    i = *iterator;
    cout << i << endl;
    ++iterator;
    }
    }


  • Mod

    Wie man seinen Beitrag lesbar formatiert

    Die Frage ist derart unspezifisch, dass ich kaum glaube, dass sie jemand (hilfreich) beantworten wird. Du brauchst Hilfe?

    Da du unregistriert bist und deinen Beitrag nicht ändern kannst, hätte ich eigentlich Codetags in deinen Beitrag eingefügt. Da aber dein Beitrag komplett unformatiert ist, wäre es damit nicht getan, daher hier ausnahmsweise dein Code in Codetags, nachdem ich ihn für dich formatiert habe:

    #include <iostream> // for using cout
    #include <list> // for using lists
    using namespace std; // for std functions
    typedef list<int>INTLIST;
    void display(list<int>);
    int main()
    {
      int i;
      list<int>list1;
      INTLIST list2;
      // Filling the list with random numbers
      for(i=0;i<4;i++)
        {
          list1.push_back(rand()%10);
          list2.push_back(rand()%10);
        }
      display(list1); // Display the list
      display(list2);
      // Putting first element to the end as well
      list1.push_back(list1.front());
      list1.reverse(); // Reverse list
      list1.sort(); // Sort list
      list1.merge(list2); // Merge two lists
      list1.sort(); // Remove multiple entries #1
      list1.unique(); // Remove multiple entries #2
      return 0;
    }
    void display(list<int>my_list)
    {
      int i;
      list<int>::const_iterator iterator;
      iterator = my_list.begin();
      while(iterator != my_list.end())
        {
          i = *iterator;
          cout << i << endl;
          ++iterator;
        }
    }
    


  • Vielen Dank für das Formatieren 🙂
    Mir wär am ehesten geholfen wenn jemand die fehlende Kommentarspalten im gleichen Stil ergänzen wie die bereits vorhanden. Ich komme vor allem mit der Zeile

    void display (list<int>my_list)
    

    überhaupt nicht zurecht. Wozu dient die Funktion Display?



  • Du hast ja schon erkannt, dass es sich um eine Funktion handelt. Und die Funktion nimmt als Parameter ein list<int> und wie der Name der Funktion schon vermuten lässt zeigt die Funktion die übergebene Liste an. Die Funktion selbst ist dann eigentlich das Standardbeispiel fürs Iterieren durch eine Liste. Man holt sich den Iterator auf den Anfang der Liste und inkrementiert den Iterator solange er ungleich dem Ende der Liste ist. Damit das Iterieren auch einen Sinn hat wird dann jedes Element per cout ausgegeben.



  • Vielen Dank für diese Erklärung. Könntest du die übrigen, noch nicht kommentierten Zeilen kurz für mich kommentieren was ungefähr deren Aufgabe ist. Würde mir wahnsinnig weiter helfen, vielen Dank im Voraus schon mal 🙂



  • Warum versuchst du es nicht selbst? Wo hast du denn den Quelltext her?



  • Sascha schrieb:

    Warum versuchst du es nicht selbst? Wo hast du denn den Quelltext her?

    .. das hatten wir schon geklärt.
    Der Code und die Fragen stammen aus diesem \1: https://www.ufz.de/export/data/1/33505_SCRIPT_HI-1_V4.01.pdf

    Nur es sind hier im Thread gerade einige Beiträge verschwunden - inklusive meiner!? Wenn das kein Software-Fehler sondern ein Moderator war, dann würde ich es gut finden, wenn er das wenigsten begründen würde!

    Gruß
    Werner


  • Mod

    Werner Salomon schrieb:

    Nur es sind hier im Thread gerade einige Beiträge verschwunden - inklusive meiner!? Wenn das kein Software-Fehler sondern ein Moderator war, dann würde ich es gut finden, wenn er das wenigsten begründen würde!

    Der Fragensteller war ein Troll, der bereits mehrmals versuchte, den Thread zu stören, nicht der Threadersteller. Die vermeintliche Folgefrage war nicht ernst gemeint.

    Dass der Threadersteller zu faul ist, seine Hausaufgaben selber zu machen, sollte jedem nach dem ersten Beitrag ohnehin offensichtlich sein.


  • Mod

    Hab den OT Blödsinn mal getrennt: https://www.c-plusplus.net/forum/336700


Anmelden zum Antworten