C++ 编程 STL 中的 deque::at() 和 deque::swap()

c++server side programmingprogramming更新于 2024/11/10 15:44:00

在本文中,我们将讨论 C++ STL 中 deque::at() 和 deque::swap() 函数的工作原理、语法和示例。

什么是 Deque?

Deque 是双端队列,是一种序列容器,可在两端提供扩展和收缩功能。队列数据结构允许用户仅在末尾插入数据并从前端删除数据。让我们以公交车站的队列为例,一个人只能从队列的末尾插入队列,站在队列最前面的人是第一个被移除的人,而在双端队列中,数据的插入和删除都可以在两端进行。

什么是 deque::at()?

deque::at() 是 C++ STL 中的一个内置函数,在 <deque> 头文件中声明。deque::at() 返回一个引用,用于指向双端队列中指定位置的元素。此函数转到作为参数传递给函数的位置上的元素。位置值从 0 开始。

语法

mydeque.at(int position);

参数

此函数接受一个参数,用于指定我们想要指向的位置。

返回值

它返回对双端队列容器指定位置上的元素的引用。

示例

输入:deque<int> mydeque = {10, 20, 30, 40};
mydeque.at(2);

输出

2 个位置上的元素为 30。

示例

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> myDeque;
   myDeque.push_back(90);
   myDeque.push_back(80);
   myDeque.push_back(70);
   myDeque.push_back(60);
   myDeque.push_back(50);
   myDeque.push_back(40);
   myDeque.push_back(30);
   myDeque.push_back(20);
   myDeque.push_back(10);
   for (int i = 0; i < myDeque.size(); ++i){
      if (i % 2 == 0){
         cout << myDeque.at(i);
         cout << " ";
      }
   }
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出 −

90 70 50 30 10

什么是 deque::swap()?

deque::swap() 是 C++ STL 中的一个内置函数,在 <deque> 头文件中声明。deque::swap() 用于将一个双端队列容器的内容与另一个双端队列容器交换。此函数接受另一个双端队列容器的对象,我们希望将其数据与关联的双端队列容器交换。

语法

mydeque1.swap(type_t& mydeque2);

参数

此函数接受一个参数,即对我们希望将其数据与关联的双端队列交换的双端队列的引用。

返回值

它不返回任何内容。

示例

Input: deque<int> even = {2, 4, 6, 8};
deque<int> odd = {1, 3, 5, 7};
even.swap(odd);
Output:
Even deque: 1 3 5 7
Odd deque: 2 4 6 8

示例

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> Deque_1 = { 1, 2, 3, 4 };
   deque<int> Deque_2 = { 3, 5, 7, 9 };
   Deque_1.swap(Deque_2);
   cout<<"Deque_1 elements after swapping : ";
   for (auto i = Deque_1.begin(); i< Deque_1.end(); ++i)
   cout << *i << " ";
   cout <<endl<<"Deque_2 elements after swapping : ";
   for (auto i = Deque_2.begin(); i<Deque_2.end(); ++i)
   cout << *i << " ";
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出 −

Deque_1 elements after swapping : 3 5 7 9
Deque_2 elements after swapping : 1 2 3 4

相关文章