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のキャッチされていない例外で終了します。
私に理由を説明できる人がいますか?ありがとうございました。
どのようなバグがありますか教えてください。すべての入力ベクトルのようですが、演算子[]を使用すると-1のインデックスは常に0になります。 – Feng
@FengZhouそれはあなたがその位置で「0」を見るのは偶然です。それは依然として違法な声明です。あなたはベクトルの内容の外を見ています。あなたが見ることができないコンテンツには、「0」が含まれています。 –
ありがとうございます。ええ、それは私が推測する偶然の一致です。 – Feng