C ++ STL中的deque :: operator =和deque :: operator []

在本文中,我们将讨论C ++ STL中deque::operator =和deque::operator []的工作,语法和示例。

什么是双端队列?

双端队列是双端队列,它是序列容器,在两端都提供扩展和收缩功能。队列数据结构允许用户仅在END插入数据,并从FRONT删除数据。让我们以在公交车站排队的类比为例,那里的人只能从END插入队列,而站在FRONT的人是第一个被移走的人,而在双头队列中,可以同时插入和删除数据结束。

什么是deque::operator =?

deque::operator =用于通过替换已经存在的值将新值分配给deque容器。该运算符还根据新值修改了双端队列容器的大小。

语法

mydeque1 = mydeque2;

它需要另一个相同类型的双端队列容器。

返回值

运算符返回*我们要分配其数据的双端队列容器的* this指针。

示例

Input: deque<int> odd = {1, 3, 5, 7};
   Deque<int> eve = {2, 4, 6};
   odd = eve;
Output:
   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<<"Elements in Deque_1 are: ";
   for (auto i = Deque_1.begin(); i!= Deque_1.end(); ++i)
      cout << ' ' << *i;
   cout<<"\nElements in Deque_2 are: ";
   for (auto i = Deque_2.begin(); i!= Deque_2.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Elements in Deque_1 are: 30, 20, 10
Elements in Deque_2 are: 10 20 30

什么是deque::operator []?

deque::operator []用于访问指定位置上的元素。该运算符返回对[]中给定位置上存在的元素的引用。这与deque::at()类似。当我们请求超出容器的元素位置时,运算符将抛出out_of_range异常。最初,双端队列容器的位置从0开始。

语法

mydeque[postion];

它需要我们要获取的职位。

返回值

该运算符返回存在于指定位置的元素的直接引用。

示例

Input: deque<int> mydeque = {1, 2, 3, 4, 5, 6};
   mydeque[2];
Output:
   3

示例

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> Deque = {10, 20, 30, 40, 50};
   cout<<"Elements are : ";
   for (int i = 0; i < Deque.size(); ++i){
      if (i % 2 != 0){
         cout << Deque[i];
         cout << " ";
      }
   }
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Elements are : 20 40