和 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.