// Standard Template Library example
#include <iostream>
#include <list>
using namespace std;
// Simple example uses type int
main()
{
list<int> L;
L.push_back(0); // Insert a new element at the end
L.push_front(0); // Insert a new element at the beginning
L.insert(++L.begin(),2); // Insert "</span><span title="Convert this amount" class="currency_converter_link">2</span><span class="currency_converter_text">" before position of first argument
// (Place before second argument)
L.push_back(5);
L.push_back(6);
static list<int>::iterator itr = 0 ;
if(itr == L.end())
{
cout <<"itr is equal to NULL;)" ;
}
else
{
cout <<"Not NULL ";
}
for(itr=L.begin(); itr != L.end(); ++itr)
cout << *itr << " ";
cout << endl;
return 0;
}
ich über Code haben, die sehr einfach ist, und einen einfachen Fehler zu werfen.Coding bricht, wenn der Port von GCC 3.1.2 bis 4.2.2
iterator.cpp:16:29: error: conversion from 'int' to non-scalar type 'std::list<i
nt>::iterator' requested
Ich bin ganz neu in C++, was beste Weg ist, mit diesem Fehler zu behandeln, so dass Code gut übersetzbar. Nur zur Information, seine Portierungsproblem, wenn Sie den gleichen Code von GCC 3.1.2 zu 4.2.2 wechseln. grundsätzlich ganze Frage wird um eine Zeile gestrickt, die
static list<int>::iterator itr = 0 ;
wie wenn mir jemand gutes Dokument führen über diese Iteratoren zu lesen. Als der alte GCC diese Dinge akzeptierte oder nur warnend warnen, aber jetzt überlegen sie dies und den Fehler. Ich bin neugierig, dass, wenn wir NULL Zeiger zuordnen und gegen NULL vergleichen, was äquivalent ist, wenn es zum Iterator kommt.
Bitte helfen. Danke ...
ich höre das ‚Brechen‘ klingen – Chubsdad
Weggehen Warnungen in Ihrem Code ist ein gutes Zeichen, dass etwas nicht stimmt. Jede Warnung bedeutet, dass der Code wahrscheinlich nicht tragbar ist. Eine Warnung ist normalerweise ein logischer Fehler (auch wenn es kein syntaktischer/semantischer Fehler ist) und Sie sollten alle Warnungen als Fehler behandeln (und die Warnstufe so hoch wie möglich einstellen). –
Warum sollte ein Iterator das sein? sei NULL ??? Es ist ein Iterator kein Zeiger (obwohl darunter ein Zeiger sein kann, ist dies ein Implementierungsdetail, auf das Sie sich definitiv nicht verlassen sollten). –