Fehlermeldung
-
was gibt size() zurück und was ist wenn die Anzahl 0 ist?
-
@Swordfish sagte in Fehlermeldung:
was gibt size() zurück und was ist wenn die Anzahl 0 ist?
Das geht hier gut, weil mit Anzahl 0 nichts gelöscht wird und somit die innere Schleife nicht ausgeführt wird. Es wird auch immer nur ein Eintrag gelöscht.
Aber der Einwand ist richtig.
-
@manni66 Ein vernünftig bedienter compiler sollte auf signed/unsigned mismatch in comparision hinweisen ...
-
@Swordfish sagte in Fehlermeldung:
@manni66 Ein vernünftig bedienter compiler sollte auf signed/unsigned mismatch in comparision hinweisen ...
Ja
-
Danke für eure Antworten Manni und Swordfish
Ihr seid wirklich hilfreich
-
-
@Swordfish sagte in Fehlermeldung:
@manni66 sagte in Fehlermeldung:
Ja
das meinte ich bzgl.
.size() - 1
.for (std::size_t j = i; j < flight.size()-1; j++) {
Ich wüsste nicht, wie ich den gcc hier zu einer Warnung veranlassen soll.
-
da nicht aber im originalcode.
-
@Swordfish sagte in Fehlermeldung:
da nicht aber im originalcode.
Dann verstehe ich
@Swordfish sagte in Fehlermeldung:
@manni66 sagte in Fehlermeldung:
Ja
das meinte ich bzgl.
.size() - 1
.nicht.
-
Ach menno. Bei
@TheDude sagte in Fehlermeldung:
for(int j=i;j<flight.size()-1;j++) { // -1 um nicht überzulaufen
sollte es einen signed/unsigned mismatch geben was einen eigentlich dazu bringen sollte darüber nachzudenken was bei
.size() == 0
und0 - 1
passiert.
-
@Swordfish sagte in Fehlermeldung:
Ach menno. Bei
@TheDude sagte in Fehlermeldung:
for(int j=i;j<flight.size()-1;j++) { // -1 um nicht überzulaufen
sollte es einen signed/unsigned mismatch geben was einen eigentlich dazu bringen sollte dasrüber nachzudenken was bei
.size() == 0
und0 - 1
passiert.Dazu saget ich Ja, woaruf du sagtest ...
-
@manni66 sagte in Fehlermeldung:
for (std::size_t j = i; j < flight.size()-1; j++) {
Ich wüsste nicht, wie ich den gcc hier zu einer Warnung veranlassen soll.
Überleg dir mal was das macht wenn
size() == 0
.
Det läuft dann ziemlich lange.
=>
for (std::size_t j = i; (j + 1) < flight.size(); j++) {
Bzw. noch besser
for (std::size_t j = i + 1; j < flight.size(); j++) {
und mitj-1
undj
stattj
undj + 1
arbeiten.
-
@hustbaer sagte in Fehlermeldung:
Überleg dir mal was das macht wenn size() == 0.
Das ist mir klar. Mir ist aber kein Compiler Schalter bekannt, der den Compiler hier zu einer Warnung veranlasst.