Bei C++ Grundlagenkenntnisse in C überflüssig?


  • Administrator

    redrew99 schrieb:

    Ich kann mir nicht vorstellen, daß man Schleifen von Java oder C# 1:1 übertragen und kompilieren kann.

    Lass mich mal schnell sehen:

    int sum = 0;
    for(int i = 0; i < 10; ++i)
    {
      sum += i;
    }
    
    int sum = 0;
    for(int i = 0; i < 10; ++i)
    {
      sum += i;
    }
    
    int sum = 0;
    for(int i = 0; i < 10; ++i)
    {
      sum += i;
    }
    

    Kompilert bei allen!

    Weisst du, was dafür lustig ist? Unter C89 kompiliert es nicht! Und von C89 wurde C++ eigentlich abgespalten. In C89 müsstest du es so schreiben:

    int i;
    int sum = 0;
    
    for(i = 0; i < 10; ++i)
    {
      sum += i;
    }
    

    Ansonsten: Siehe Beitrag von Artchi.

    Grüssli



  • 314159265358979 schrieb:

    Der vector erlaubt es, aber nicht in O(1) sondern O(N). Die verkettete Liste in der STL heißt std::list.

    Falsch. std::forward_list



  • Wrong Answer Noob schrieb:

    314159265358979 schrieb:

    Der vector erlaubt es, aber nicht in O(1) sondern O(N). Die verkettete Liste in der STL heißt std::list.

    Falsch. std::forward_list

    std::forward_list ist nicht Teil der STL.



  • Wrong Answer Noob schrieb:

    314159265358979 schrieb:

    Der vector erlaubt es, aber nicht in O(1) sondern O(N). Die verkettete Liste in der STL heißt std::list.

    Falsch. std::forward_list

    Beides sind verkettete Listen. std::list ist eine doppelt verkettete, std::forward_list eine einfach verkettete.


Anmelden zum Antworten