C++中的带有实例的deque of Pairs

C++中的带有实例的deque of Pairs

什么是deque?

在C++中,deque是一个序列容器,也被称为双端队列。顾名思义,deque允许从两端进行插入和删除。尽管deque类似于vector,但与vector比较起来,deque更高效。在向量中,连续的存储分配是保证的,但是这在deque中可能不是这种情况。Deque是队列的特殊情况,因为允许在两端进行插入和删除操作。

与deque相关的函数:

  • push_front() 用于从前面将元素推入容器中。
  • push_back() 用于从后面将元素推入容器中。
  • front() 用于引用容器的第一个元素。
  • back() 用于引用容器的最后一个元素。

什么是pair?

C++中的utility头文件为我们提供了pair容器。一对由两个数据元素或对象组成。

  • 第一个元素被引用为’first’,第二个元素被引用为’second’,顺序固定(first,second)。
  • Pair用于组合两个可能在类型上不同的值。Pair提供了一种将两个异构对象存储为单个单元的方法。
  • Pair可以被分配、复制和比较。在映射或哈希映射中分配对象数组默认为类型’pair’,其中所有’first’元素都是唯一的键,关联着它们的’second’值对象。

要访问元素,我们使用变量名称,然后是点运算符,然后是关键字first或second。

如何访问一个pair?

可以使用点(.)操作符访问一对的元素。

语法:

auto fistElement = myPair.first;

auto fistElement = myPair.second;

本文重点介绍如何创建一对deque。

deque of pairs

Deque of pairs是一个deque容器,其中每个元素本身都是一对。

语法:

**deque <pair<dataType1,dataType2>> myContainer; **

这里,dataType1和dataType2可以是相似或不同的数据类型

示例1: 下面是实现一对deque的C++程序。

// C++程序演示了
//带有pair的deque的工作原理
#include <bits/stdc++.h>
using namespace std;
  
//打印deque元素的函数
void print(deque<pair<int, 
           bool> >& myContainer)
{
    for (auto currentpair : myContainer) 
    {
        //每个deque元素本身都是一对
        pair<int, bool> pr = currentpair;
  
        cout << "[ ";
  
        //打印pair元素
        cout << pr.first << ' ' << 
                pr.second;
        cout << ']';
        cout << '\n';
    }
}
  
//驱动程序
int main()
{
    //声明类型为{int,bool}的pair的deque
    deque<pair<int, bool> >
          myContainer;
  
    //声明一对
    pair<int, bool> pair1;
  
    //初始化
    pair1 = make_pair(22, false);
  
    //将对推到deque前面
    myContainer.push_front(pair1);
  
    //声明另一对
    pair<int, bool> pair2;
  
    //初始化
    pair2 = make_pair(33, true);
  
    //将对推到deque后面
    myContainer.push_back(pair2);
  
    //声明另一对
    pair<int, bool> pair3;
  
    //初始化对
    pair3 = make_pair(11, false);
  
    //将对推到deque前面
    myContainer.push_front(pair3);
  
    //声明另一对
    pair<int, bool> pair4;
  
    //初始化对
    pair4 = make_pair(44, true);
  
    //将对推到deque后面
    myContainer.push_back(pair4);
  
    //调用print函数
    print(myContainer);
    return 0;
}

输出

[ 11 0]   
[ 22 0]   
[ 33 1]   
[ 44 1] 

例2: 以下是实现deque of pairs的C++程序。

// C++程序演示deque和pair的工作
#include <bits/stdc++.h>
using namespace std;

//打印双端队列元素的函数
void print(deque<pair<string,bool> >& myContainer)
{
    for(auto currentpair:myContainer) 
    {
        //每个双端队列元素都是一个pair
        pair<string,bool> pr=currentpair;

        cout<<"[ ";

        //打印pair元素
        cout<<pr.first<<'<<pr.second;
        cout<<']';
        cout<<'\n';
    }
}

//主函数
int main()
{
    //声明一个元素类型为{string,bool}的pair双端队列
    deque<pair<string,bool> > myContainer;

    //声明一个pair
    pair<string,bool> pair1;

    //初始化pair
    pair1=make_pair("GeeksforGeeks",false);

    //将该pair插入双端队列首部
    myContainer.push_front(pair1);

    //声明另一个pair
    pair<string,bool> pair2;

    //初始化pair
    pair2=make_pair("GFG",true);

    //将该pair插入双端队列尾部
    myContainer.push_back(pair2);

    //声明另一个pair
    pair<string,bool> pair3;

    //初始化pair
    pair3=make_pair("Java",false);

    //将该pair插入双端队列首部
    myContainer.push_front(pair3);

    //声明另一个pair
    pair<string,bool> pair4;

    //初始化pair
    pair4=make_pair("Python",true);

    //将该pair插入双端队列尾部
    myContainer.push_back(pair4);

    //调用print函数
    print(myContainer);
    return 0;
}

输出结果

[ Java 0]   
[ GeeksforGeeks 0]   
[ GFG 1]   
[ Python 1] 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程