C++编程STL中的deque::at()和deque::swap()
本文将讨论C++ STL中deque::at()和deque::swap()函数的工作原理、语法和示例。
什么是Deque?
Deque是双端队列,是一种序列容器,可以在两端进行扩展和收缩操作。队列数据结构只允许用户在队尾插入数据,在队首删除数据。让我们以公交车站的队列为例,乘客只能从队尾加入队列,而站在队首的人最先离开。而在双端队列中,可以在两端进行数据的插入和删除。
什么是deque::at()?
deque::at()是C++ STL中的一个内置函数,声明在<deque>头文件中。deque::at()返回一个引用,用于指向deque中指定位置的元素。此函数会跳转到作为参数传递给函数的指定位置的元素。位置值从0开始。
语法
mydeque.at(int position);
参数
此函数接受一个参数,表示我们要指向的位置。
返回值
它返回对deque容器中指定位置元素的引用。
示例
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()用于交换一个deque容器与另一个deque容器的内容。此函数接受另一个deque容器的对象,我们希望将其数据与关联的deque容器交换。
语法
mydeque1.swap(type_t& mydeque2);
参数
此函数接受一个参数,即我们要与其关联的deque交换数据的deque的引用。
返回值
它不返回任何值。
示例
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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP