Ist dieses (einfache) C++ guter Stil?
-
@john-0 sagte in Ist dieses (einfache) C++ guter Stil?:
Jetzt ist es perfekt!
Nein ist es nicht:
@Swordfish sagte in Ist dieses (einfache) C++ guter Stil?:
std::string input; for (int i = 1; i < argc; ++i) { // fanservice: commas aren't required, whitespace is sufficient input += argv[i]; input += ' '; } std::replace(std::begin(input), std::end(input), ',', ' ');
-
@EinNutzer0 Für diese Aufgabe braucht man kein vector.
Das kann man alles direkt in der Schleife über argv erledigen.
-
Ich hab es so kompiliert bekommen:
#include <cstdlib> #include <iterator> #include <vector> #include <string> #include <sstream> #include <iostream> #include <iomanip> #include <algorithm> #include <numeric> int main(int argc, char **argv) { if (argc == 2) { std::string s = argv[1]; std::replace(std::begin(s), std::end(s), ',', ' '); std::istringstream iss(s); std::vector<int> values(std::istream_iterator<int>{iss}, std::istream_iterator<int>{}); auto min_max = std::minmax_element(std::begin(values), std::end(values)); auto sum = std::accumulate(std::begin(values), std::end(values), 0); auto average = sum / static_cast<double>(values.size()); std::cout << "Minimum: " << *min_max.first << "\nMaximum: " << *min_max.second << "\nAnzahl: " << values.size() << "\nSumme: " << sum << "\nDurchschnitt: " << std::fixed << std::setprecision(1) << average << "\n\n"; return 0; } return 1; }
{ }
(Tupel) kannte er nicht...@DirkB sagte in Ist dieses (einfache) C++ guter Stil?:
Das kann man alles direkt in der Schleife über argv erledigen.
Hab ich mir auch erst gedacht, aber dann würde man nicht alles nutzen, was C++ mitbringt?
-
@EinNutzer0 sagte in Ist dieses (einfache) C++ guter Stil?:
Hab ich mir auch erst gedacht, aber dann würde man nicht alles nutzen, was C++ mitbringt?
Ich sehe keinen std::thread in deinem Code.
-
@EinNutzer0 sagte in Ist dieses (einfache) C++ guter Stil?:
{ }
(Tupel) kannte er nicht...Welcher Compiler auf welcher Plattform?
-
@john-0 sagte in Ist dieses (einfache) C++ guter Stil?:
Welcher Compiler auf welcher Plattform?
Neustes Ubuntu und ich compile über Docker:
https://hub.docker.com/_/gcc
-
@EinNutzer0 sagte in Ist dieses (einfache) C++ guter Stil?:
{ }
(Tupel) kannte er nicht...Das ist List Initialization. Seit C++11!
@EinNutzer0 sagte in Ist dieses (einfache) C++ guter Stil?:
if (argc == 2) {
Preconditions checken und wenn nicht erfüllt nichts wie raus da:
if (argc != 2) return;
-
@EinNutzer0 sagte in Ist dieses (einfache) C++ guter Stil?:
@john-0 sagte in Ist dieses (einfache) C++ guter Stil?:
Welcher Compiler auf welcher Plattform?
Neustes Ubuntu und ich compile über Docker:
https://hub.docker.com/_/gcc
Beim g++ lässt sich das Verhalten des Compilers entsprechend der jeweiligen Norm aktivieren in dem man z.B.
-std=c++17
angibt. Besser ist es gleich mitg++ -std=c++17 -pedantic -Wall -Wextra
zu übersetzen. Bei Bedarf kann man noch weitere Flags setzen, wenn man sie braucht.
-
-
@Swordfish sagte in Ist dieses (einfache) C++ guter Stil?:
@john-0 sagte in Ist dieses (einfache) C++ guter Stil?:
Prüfen auf die betreffende Norm
Prüfen??
Der Compiler verhält sich entsprechend der jeweiligen Norm konform.