和 array、vector 容器一樣,deque可以采用普通數組訪問存儲元素的方式,訪問 deque 容器中的元素,比如:
#include <iostream>#include <deque>using namespace std;int main(){deque<int>d{ 1,2,3,4 };cout << d[1] << endl;//修改指定下標位置處的元素d[1] = 5;cout << d[1] << endl;return 0;}
運行結果為:
2
5
可以看到,容器名[n]的這種方式,不僅可以訪問容器中的元素,還可以對其進行修改。但需要注意的是,使用此方法需確保下標 n 的值不會超過容器中存儲元素的個數,否則會發生越界訪問的錯誤。
如果想有效地避免越界訪問,可以使用 deque 模板類提供的 at() 成員函數,由于該函數會返回容器中指定位置處元素的引用形式,因此利用該函數的返回值,既可以訪問指定位置處的元素,如果需要還可以對其進行修改。
不僅如此,at() 成員函數會自行判定訪問位置是否越界,如果越界則拋出std::out_of_range異常。例如:
#include <iostream>#include <deque>using namespace std;int main(){deque<int>d{ 1,2,3,4 };cout << d.at(1) << endl;d.