vector.at(i)
和vector[i]
有什麼區別?C++ STL訪問向量元素
vector<int> myVector(6);
myVector.at(5) = 5;
OR
myVector[5] = 5;
我知道,這兩個產生相同的結果,但不知何故操作[]
更快。我還讀了at
檢查矢量大小(邊界)並返回出界錯誤,而[]
沒有。
但是我看到,如果嘗試分配:
myVector[8] = 1;
我得到一個類似超出範圍錯誤的調試模式。
那麼at
是什麼意思?爲什麼在STL中?
可能是在調試模式下,特定的矢量實現甚至對'[]'運算符也有範圍檢查。你真的必須檢查你正在使用的庫的文檔。 –
任何參考資料都應該告訴你。如果您不相信有效性,請查看標準。 – chris