C++ STL 中的 deque::operator= 和 deque::operator[]
c++server side programmingprogramming更新于 2024/11/10 14:42:00
在本文中,我们将讨论 C++ STL 中的 deque::operator= 和 deque::operator[] 的工作原理、语法和示例。
什么是 Deque?
Deque 是双端队列,是一种序列容器,可在两端提供扩展和收缩功能。队列数据结构允许用户仅在末尾插入数据并从前端删除数据。让我们以公交车站的队列为例,一个人只能从队列的末尾插入队列,站在队列最前面的人是第一个被移除的人,而在双端队列中,数据的插入和删除都可以在两端进行。
什么是 deque::operator =?
deque::operator = 用于通过替换已经存在的值来将新值分配给双端队列容器。此运算符还根据新值修改双端队列容器的大小。
语法
mydeque1 = mydeque2;
它需要另一个相同类型的双端队列容器。
返回值
该运算符返回我们要分配其数据的双端队列容器的 *this 指针。
示例
输入:deque<int> odd = {1, 3, 5, 7}; Deque<int> eve = {2, 4, 6}; odd = eve; 输出: Odd: 2, 4, 6 Eve: 2, 4, 6
示例
#include <deque> #include <iostream> using namespace std; int main(){ deque<int> Deque_1 = { 10, 20, 30 }; deque<int> Deque_2 = { 30, 20, 10 }; deque<int> Deque_3 = {}; //它将交换两个双端队列的元素 Deque_3 = Deque_2; Deque_2 = Deque_1; Deque_1 = Deque_3; cout<<"Deque_1 中的元素为:"; for (auto i = Deque_1.begin(); i!= Deque_1.end(); ++i) cout << ' ' << *i; cout<<"\nDeque_2 中的元素为:"; for (auto i = Deque_2.begin(); i!= Deque_2.end(); ++i) cout << ' ' << *i; return 0; }
输出
如果我们运行上述代码,它将生成以下输出 −
Deque_1 中的元素为:30、20、10 Deque_2 中的元素为:10 20 30
什么是 deque::operator []?
deque::operator [] 用于访问指定位置上的元素。此运算符返回对 [] 中给定位置上存在的元素的引用。其工作方式与 deque::at() 类似。当我们请求容器外的元素位置时,运算符会抛出 out_of_range 异常。最初,deque 容器的位置从 0 开始。
语法
mydeque[postion];
它需要我们想要获取的位置。
返回值
此运算符返回对指定位置上存在的元素的直接引用。
示例
输入:deque<int> mydeque = {1, 2, 3, 4, 5, 6}; mydeque[2]; 输出: 3
示例
#include <deque> #include <iostream> using namespace std; int main(){ deque<int> Deque = {10, 20, 30, 40, 50}; cout<<"元素包括: "; for (int i = 0; i < Deque.size(); ++i){ if (i % 2 != 0){ cout << Deque[i]; cout << " "; } } return 0; }
输出
如果我们运行上述代码,它将生成以下输出 −
元素包括: 20 40