C++11 : error: 'begin' ist nicht ein Mitglied von 'std'
Ich versuche, die folgende operation:
source = new int[10];
dest = new int[10];
std::copy( std::begin(source), std::end(source), std::begin(dest));
Aber der compiler meldet folgenden Fehler.
copy.cpp:5434:14: error: ‘begin’ is not a member of ‘std’
copy.cpp:5434:44: error: ‘end’ is not a member of ‘std’
copy.cpp:5434:72: error: ‘begin’ is not a member of ‘std’
Ich habe die erforderlichen <iterator>
header im code. Kann jemand mir helfen mit diesem?
- Aktivieren Sie C++11. (Füllung)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Template-Funktionen std::begin() und std::end() nicht implementiert Zeiger (Zeiger enthalten keine Informationen über die Anzahl der Elemente, die Sie finden), Anstatt Sie Ihnen, Sie sollten schreiben
Als für die Fehler sollten Sie prüfen, ob Sie enthalten header
Vielleicht auch Ihr compiler unterstützt C++ 2011 Standard.
Zusätzlich enthalten
<iterator>
im C++11-fähigen compiler. Sie sollten wissenbegin/end
sind nicht hilfreich für die Zeiger, Sie sind nützlich für arrays:std::array
.[]
ist keine schlechte Wahl, für einfache Projekte/codes.habe dieses problem auch bei der Verwendung von g++ - compiler diesen code in linux.
Verwendung von g++ - compiler, enthalten C++ - featuer sollte hinzufügen, C++11 flag