vector<int> input = {1, 2, 3, 4, 17, 117, 517, 997};
cout<< "input vector at index -1 is: " << input[-1] <<endl;
使用上面的代碼訪問向量的負折射率,其結果將是:在索引-1輸入是:0. 然而,如果我們使用follwoing:經由操作符[]和.AT()
vector<int> input = {1, 2, 3, 4, 17, 117, 517, 997};
cout<< "input vector at index -1 is: " << input.at(-1) <<endl;
結果是: 在索引-1處的輸入是:libC++ abi.dylib:以std :: out_of_range:vector類型的未捕獲異常終止。
有人可以向我解釋原因嗎?謝謝。
你能告訴我什麼bug可以嗎?對於每個輸入矢量來說,當我使用operator []時,其-1處的索引始終爲0。 – Feng
@FengZhou這是一個巧合,你在那個位置看到一個'0'。這仍然是一個非法的陳述。你正在向外看內容。你不允許看的內容包含一個「0」。 –
謝謝。是的,我猜這是巧合。 – Feng