ich versuchte, aus codefights.com und bemerkte jemandes Antwort auf eine Frage, die alle längsten Strings in einem Vektor tun dies beteiligt geben:Variablendeklaration in Funktionsrückgabe Typspezifizierer C++ Typ
std::vector<std::string> r, allLongestStrings(std::vector<std::string> a) {
int b=0;
for (s:a) if (s.size()>b) b=s.size();
for (s:a) if (s.size()==b) r.push_back(s);
return r;
}
Er erklärt eine Variable in der Rückgabetyp-Spezifizierer für die Funktion, kann mir jemand sagen, warum dies erlaubt ist? Ich kompiliere nicht auf meinem Rechner und ich konnte keine gcc-Erweiterung finden, die das tut, danke im Voraus :).
Sind Sie sicher, dass die Lösung funktioniert? Wie geschrieben, scheint dies nicht gültig C++ zu sein. – merlin2011
Nicht gültig C++ in keiner Weise. Diese Form des Ranged-For wurde von bestimmten Versionen von GCC erlaubt, wurde aber später entfernt, da der Standard dies verbietet. Wie zum Deklarieren einer Variable im Rückgabetyp ... Was? – DeiDei
Ich weiß !, die for-Schleifen verwirrten mich auch, aber es funktioniert auf der Codefights-Website und besteht alle Tests: S –