vector<int> input = {1, 2, 3, 4, 17, 117, 517, 997};
cout<< "input vector at index -1 is: " << input[-1] <<endl;
die über dem Code verwenden, wird das Ergebnis sein: Eingang am Index -1 ist: 0. Wenn wir jedoch follwoing verwenden:über Operator negativer Index des Vektors Zugriff [] und .at()
vector<int> input = {1, 2, 3, 4, 17, 117, 517, 997};
cout<< "input vector at index -1 is: " << input.at(-1) <<endl;
Das Ergebnis wäre: Eingang bei Index -1 ist: libC++ abi.dylib: mit abgefangene Ausnahme vom Typ std :: Abschluss out_of_range: Vektor.
Kann jemand den Grund zu mir erklären? Vielen Dank.
Könnten Sie mir bitte sagen, was ein Fehler sein könnte? Es scheint für jeden Eingabevektor, dass sein Index bei -1 immer 0 ist, wenn ich operator [] verwende. – Feng
@FengZhou Das ist ein Zufall, dass Sie eine '0' an dieser Position sehen. Es ist immer noch eine illegale Aussage. Sie schauen außerhalb des Inhalts des Vektors. Der Inhalt, den Sie nicht ansehen dürfen, enthält eine "0". –
Danke. Ja, es ist ein Zufall, denke ich. – Feng