Erste Versuche mit Container und Iterator


  • Mod

    Von den beiden: Variante 2.

    Wobei mich an stört, wenn die öffnenden und schließenden Klammern nicht in einer Spalte stehen.



  • volkard schrieb:

    cpp_beginner_offl schrieb:

    Noch was zum Stil:

    Variante 1 :

    if ( x == y ){
        bla bla;
    }
    

    oder
    Variante 2 :

    if (x == y){
        bla bla;
    }
    

    abgesehen von den Klammern, wills jetzt nicht übertreiben mit den Leerzeichen?

    Ich empfehle, fast alle nutzlosen Leerzeichen wegzumachen. Es ist UNMÖGLICH, einen einigermaßen konsistenten Stil mit Leerzeichen hinzukriegen.

    for (auto it=myData.begin(); it != myData.end(); ++it)
    

    Da sieht mans Elende doch schon. != kriegt Leerzeichen aber = nicht. Die Leerzeichenschmücker (leider noch in der deutlichen Überzahl) bemerken diese Unschönheiten scheinbar gar nicht, aber mir kommts Kotzen.

    Ehm, wenn dann ist man auch konsequent:

    for (auto it = myData.begin(); it != myData.end(); ++it)
    

    Leerzeichen kommen nach Trennern wie , ; (wie im Deutschen) und vor und hinter binären Operatoren.
    Nach und vor Klammern kommen keine Leerzeichen, außer bei if, while, for,... da kommt ein Leerzeichen nach dem Keyword.
    Das ist dann auch konsequent.



  • SeppJ schrieb:

    Von den beiden: Variante 2.

    Wobei mich an stört, wenn die öffnenden und schließenden Klammern nicht in einer Spalte stehen.

    Mich stört, wenn die schließende Klammer nicht unter dem ersten Zeichen von if/while/for… steht, also Dein Vorschlag

    if(...)
      {
        tuwas1();
        tuwas2();
      }
    else
      {
        anderes();
      }
    

    von der ersten Seite geht gar nicht.

    Sehr spät bin ich umgestiegen von

    if(...)
    {
        tuwas1();
        tuwas2();
    }
    else
    {
        anderes();
    }
    

    nach

    if(...){
      tuwas1();
      tuwas2();
    }
    else
      anderes();
    

    , weil mir die Klammern eher die Übersicht nehmen, als was zu bringen. Ich wünschte mir, allein die Einrückung würde steuern.

    if(...)
      tuwas1();
      tuwas2();
    else
      anderes();
    

    ~(Dann geht natürlich wieder einiges an der Schriftgröße!)~



  • if ( !(x == y) )  //v1
    
       vs: 
    
    if (!(x == y))    //v2
    

    Macht wohl jeder wie er will . Für mich definitv v2 ! ( Auch wenn bei umfangreicheren Bedingungen mal 4 )))) zusammenkommen )



  • Nathan schrieb:

    Leerzeichen kommen nach Trennern wie , ; (wie im Deutschen) und vor und hinter binären Operatoren.
    Nach und vor Klammern kommen keine Leerzeichen, außer bei if, while, for,... da kommt ein Leerzeichen nach dem Keyword.
    Das ist dann auch konsequent.

    +1

    Wobei ich es lustig finde dass darüber noch diskutiert wird. Ich hab' den Eindruck dass das schon ein quasi-Standard ist. Man sieht nicht viel Code in Open-Source Projekten der was Leerzeichen angeht anders formatiert wäre.
    Ist auch die Standardeinstellung von Visual Studio. Bei anderen IDEs nehme ich an dass die Standardeinstellungen auch so sind, aber ausprobiert hab' ich es nicht.



  • volkard schrieb:

    Sehr spät bin ich umgestiegen von

    if(...)
    {
        tuwas1();
        tuwas2();
    }
    else
    {
        anderes();
    }
    

    Ist imho die übersichtlichste Sache.

    UltraEdit macht das sehr schön mit gepunkteten Linien von Block zu Block.

    '{' am Zeilenende geht gar nicht. Völlig unübersichtlich.

    Und - Klammern müssen schon sein wenn man nicht von Basic kommt. (asm ist wieder ne andere Baustelle)



  • EOP schrieb:

    volkard schrieb:

    Sehr spät bin ich umgestiegen von

    if(...)
    {
        tuwas1();
        tuwas2();
    }
    else
    {
        anderes();
    }
    

    Ist imho die übersichtlichste Sache.

    So sehe ich das auch. Der einzige Nachteil dieser Variante (dass es mehr Zeilen braucht und daher u.U. gewisse Dinge nicht mehr auf den Monitor passen sodass man dauernd scrollen muss) wird durch neuere IDEs, bei denen man Codeblöcke reduzieren / einklappen kann, ausgebügelt.



  • bin ich der einzige, der kein leerzeichen zwischen keyword und klammer setzt?



  • Kellerautomat schrieb:

    bin ich der einzige, der kein leerzeichen zwischen keyword und klammer setzt?

    Mach ich auch nicht. In Volkards Code, den EOP und ich zitierten, ist auch keins.



  • Kellerautomat schrieb:

    bin ich der einzige, der kein leerzeichen zwischen keyword und klammer setzt?

    Ich mach richtig viele Leerzeichen - da aber auch nicht.
    Und auch nicht wenn ich Seiteneffekte und sowas in Funktionsaufrufen nutze. Damit ich gleich beim Überfliegen erkenne, daß hier was anders läuft als üblich.



  • *facepalm*



  • Kellerautomat schrieb:

    bin ich der einzige, der kein leerzeichen zwischen keyword und klammer setzt?

    Bis auf du und SeppJ habe ich diesen Stil bislang noch von keinen gesehen, und kann diesem zugegeben auch nichts abgewinnen.

    Vorher kannte ich nur die folgenden 4 Klammerstile:

    // Der Stil der mir in meiner Berufspraxis am häufigsten untergekommen ist:
    if(a == b)
    {
        tueEtwas();
    }
    
    // Der zweite Stil aus meiner Berufspraxis kenne (nicht viel seltener):
    if(a == b) {
        tueEtwas();
    }
    
    // Die folgenden 2 Stile habe ich bislang nur in Codebeispielen gesehen:
    if(a == b)
        {
        tueEtwas();
        }
    
    if(a == b) {
        tueEtwas();
        }
    

    Wobei ich eigentlich nur eins als wichtig erachte: Egal welcher Stil verwendet wird, sollte Dieser bezogen auf ein Projekt auch konsistent eingehalten werden.



  • asc schrieb:

    Bis auf du und SeppJ habe ich diesen Stil bislang noch von keinen gesehen, und kann diesem zugegeben auch nichts abgewinnen.

    Ehrlich gesagt ist es mir vollkommen egal. Wenn meine IDE eines hinmacht, ist eines da, ansonsten eben nicht. Ich finde das vollkommen irrelevant.

    Die Frage sollte daher lauten: Wozu ein unnoetiges Zeichen mehr? Ist doch bloss mehr zu tippen.



  • War Quatsch. Tschuldigung.


Anmelden zum Antworten