Per Dokumentation, std::find
kehrtWas std :: nicht finden zurück, wenn Element nicht gefunden
letzte
, wenn kein Element gefunden wird. Was bedeutet das? Gibt es einen Iterator zurück, der auf das letzte Element im Container verweist? Oder gibt es einen Iterator zurück, der auf .end()
zeigt, d. H. Nach außerhalb des Containers zeigt? Der folgende Code druckt 0
, die kein Element des Containers ist. Also, ich denke, std::find
gibt einen Iterator außerhalb des Containers zurück. Könnten Sie bitte bestätigen?
int main()
{
vector<int> vec = {1, 2,3, 1000, 4, 5};
auto itr = std::find(vec.begin(), vec.end(), 456);
cout << *itr;
}
Danke, ich verstehe es jetzt. –
Allerdings sollten Sie in der Lage sein zu tun, wenn (vec.begin(), vec.end(), ...)! = Vec.end() '... – twalberg
Was auch immer der Typ von vec ist, tut * (vec.end()) immer 0 zurückgeben? @First Jens @Cameron –