📅  最后修改于: 2023-12-03 15:29:50.740000             🧑  作者: Mango
在 C++ STL 中,deque 是一种双端队列(Double-ended Queue)容器,是由一段一段连续的存储空间按照一定的规则组织而成,支持快速的随机访问和在队列两端的插入和删除操作。deque 提供了一系列方便的成员函数和迭代器等工具,以简化对队列的操作。
其中,deque::运算符= 和 deque::运算符[] 是两个常用的操作符,下面进行介绍。
deque 类型支持运算符=,即赋值操作。其定义如下:
deque& operator= (const deque& x);
该函数的作用是将当前 deque 对象的内容替换为 x 的内容。具体使用方式如下:
deque<int> dq1, dq2;
dq1.push_back(1);
dq1.push_back(2);
dq2 = dq1; // 将 dq2 的内容修改为 dq1 的内容,此时 dq2 中存储的为 1, 2
值得注意的是,在对一个 deque 对象使用赋值操作前,其必须已经完成空间的分配。否则程序将崩溃。
deque 类型还支持运算符[],即下标访问操作符。其定义如下:
reference operator[] (size_type n);
const_reference operator[] (size_type n) const;
该操作符的作用是返回 deque 对象中第 n 个元素的引用,可用于修改该元素的值。下标 n 的取值范围为 0~size()-1,否则会抛出 std::out_of_range 异常。具体使用方式如下:
deque<int> dq;
dq.push_back(1);
dq.push_back(2);
dq[0] = 3; // 将 dq 的第一个元素修改为3,此时 dq 中存储的为 3, 2
需要注意的是,当使用 const 对象时,必须使用 const 成员函数才能访问下标,否则编译器会报错。
const deque<int> dq;
int i = dq[0]; // 编译错误
int j = dq.at(0); // 使用 at 成员函数可以访问成功
以上便是 deque::运算符= 和 deque::运算符[] 的使用方法。它们都是 deque 类型中常用的操作符,为使用 deque 双端队列提供了便捷的操作方法。