C ++编程STL中的deque :: at()和deque :: swap()
在本文中,我们将讨论C++STL中deque::at()和deque::swap()函数的工作,语法和示例。
什么是双端队列?
双端队列是双端队列,双端队列是序列容器,提供了两端的扩展和收缩功能。队列数据结构允许用户仅在END插入数据,并从FRONT删除数据。让我们以在公交车站排队的类比为例,那里的人只能从END插入队列,而站在FRONT的人是第一个被移走的人,而在双头队列中,可以同时插入和删除数据结束。
什么是deque::at()?
deque::at()是C++STL中的内置函数,在<deque>头文件中声明。deque::at()返回一个引用,该引用用于指向双端队列中指定位置上存在的元素。该函数转到作为参数传递给该函数的位置处存在的元素。位置值从0开始。
语法
mydeque.at(int position);
参数
该函数为我们要指向的位置接受一个参数。
返回值
它返回对双端队列容器指定位置上的元素的引用。
示例
Input: 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