Benutzung von "auto" in C++



  • Liebe Community,
    ich bin ein blutiger c++ Anfänger. Vor kurzem habe ich angefangen mich mit der "auto"-Funktion zu beschäftigen. Die theoretische Verwendung der "auto"-Funktion ist mir soweit klar. In der Praxis bekomme ich aber andauernd folgende Fehlermeldung: C:\Users\Georg\OneDrive\Desktop\Unbenannt2_auto.cpp [Error] 'myAuto' does not name a type
    ich weiß einfach nicht woran es liegen könnte. Hier das Beispiel, in dem ich "auto" verwendet habe:
    // listings/006/listing002.cpp
    #include <iostream>
    #include <vector>
    int main () {
    std::vector<int> ivec (10);
    std::cout << "Anzahl Elemente:" << ivec.size() << '\n';
    ivec[0] = 123;
    ivec.at(1) =234;
    ivec.push_back(456);
    ivec.resize(ivec.size()+2);
    std::cout << " Wert fuer 7. Element : ";
    std::cin >> ivec.at(6);
    if( std::cin .fail()) {
    std::cerr << "Fehler bei der Eingabe\n";
    return 1;
    }
    for(size_t i=0; i < ivec.size(); ++i) {
    std::cout << ivec[i] << std::endl;
    }

    for(auto i=0; i < ivec.size(); ++i) {
    	std::cout << ivec[i] << std::endl;
    }
    return 0;
    

    }
    Vielen Dank im Voraus für alle hilfreichen Anworten



  • Wenn du Antworten möchtest solltest du eine Frage stellen.
    Und du solltest Code den du postest formatieren. Das Forum verwendet Markdown, damit sollte sich alles was du dazu brauchst ergoogeln lassen.

    In der Praxis bekomme ich aber andauernd folgende Fehlermeldung: C:\Users\Georg\OneDrive\Desktop\Unbenannt2_auto.cpp [Error] 'myAuto' does not name a type

    Ja, schön. Wie wär's wenn du den Code herzeigst bei dem du diese Fehlermeldung bekommst? Mit dem Code den du gezeigt hast bekommst du die ganz sicher nicht, da kommt "myAuto" ja nichtmal vor.



  • @Georg sagte in Benutzung von "auto" in C++:

    for(auto i=0; i < ivec.size(); ++i) {
    std::cout << ivec[i] << std::endl;
    }

    Achtung: auto wählt den Typ hier nur anhand der 0, nicht anhand des ivec.size(). Das bedeutet, dass du hier int als Typ bekommen wirst statt size_t.

    Aber wie @hustbaer schon Schrieb, der Quellcode passt nicht zu deinem Problem.



  • Verzeihung, die Fehlermeldung lautet [Error] 'i' does not name a type. Entschuldigung, dass mir das Format noch nicht bekannt war. Ich bin wie gesagt blutiger Anfänger beim Programmieren.



  • Wie historisch ist dein Compiler?
    Dieses Feature wurde in den 2011er-Standard (vor 10 Jahren) eingebaut. Ich hoffe doch, dass du keinen Uralt-Compiler nutzt? Ggf. brauchst du einen Switch -std=c++11.



  • Vielen Dank erstmal für die Antworten. Es scheint wohl an meiner Version des Programms und/oder eventuell am Compiler zu liegen. Ich kenne mich noch nicht sehr gut damit aus... Meine Version von C++ ist Dev-C++ 5.1.1 mit einem regex_compiler. Man kann nämlich seinen Code auch online compilieren lassen. Dort klappt alles einwandfrei...



  • @Georg sagte in Benutzung von "auto" in C++:

    Vielen Dank erstmal für die Antworten. Es scheint wohl an meiner Version des Programms und/oder eventuell am Compiler zu liegen. Ich kenne mich noch nicht sehr gut damit aus... Meine Version von C++ ist Dev-C++ 5.1.1 mit einem regex_compiler. Man kann nämlich seinen Code auch online compilieren lassen. Dort klappt alles einwandfrei...

    Deine Entwicklungsumgebung ( DevC++ ) ist 10 Jahre alt und war schon damals nicht gerade die beste Wahl.

    Besser wäre z.B. CodeBlocks ( http://www.codeblocks.org/downloads/binaries/.
    Dort nimmst du am besten eine Version wie diese: codeblocks-20.03mingw-setup.exe. Denn da ist anfängerfreundlich gleich der Compiler mit an Bord.

    Eine andere Wahl wäre z.B. der QTCreator, oder CLion oder oder oder.


Log in to reply