当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Deque swap()用法及代码示例


C++ Deque swap() 函数将给定双端队列的内容与传入相同类型参数的双端队列进行交换。

条件:

  • 双端队列的类型不能不同。
  • 双端队列的大小可能会有所不同。

用法

void swap(deque& second);

参数

second:它是另一个双端队列容器,其内容将与给定的双端队列交换。

返回值

它不返回任何值。

例子1

让我们看一个简单的例子

#include <iostream>
#include<deque>
using namespace std;
int main()
{
    deque<string> str={"C is a programming language"};
    deque<string> str1={"java is a programming language"};
    
    str.swap(str1);
    deque<string>::iterator itr=str.begin();
     deque<string>::iterator itr1=str1.begin();
    cout<<"After swapping,value of str is:"<<*itr;
    cout<<'\n';
     cout<<"After swapping,value of str1 is:"<<*itr1;
    return 0;
 }

输出:

After swapping,value of str is:java is a programming language
After swapping,value of str1 is:C is a programming language

在本例中,swap() 函数交换 str 和 str1 的内容。现在,str 包含“java 是一种编程语言”,而 str1 包含“C 是一种编程语言”。

例子2

当两个双端队列的类型不同时,让我们看一个简单的例子。

#include <iostream>
#include<deque>
using namespace std;
int main()
{
    deque<char> c={'m','a','n','g','o'};
    deque<int> s={1 ,2,3,4,5};
    c.swap(s);
    return 0;
   }

输出:

error:no matching function for call to 'std::deque<char>::swap(std::deque<int>&)

在这个例子中, swap() 函数抛出一个错误,因为两个双端队列的类型不同。

例子3

让我们看一个大小不同时的简单示例。

#include <iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> first={1,2,3,4};
    deque<int> second={10,20,30,40,50};
    deque<int>::iterator itr;
    first.swap(second);
    cout<<"Content of first deque:";
    for(itr=first.begin();itr!=first.end();++itr)
    cout<<*itr<<" ";
    cout<<'\n';
    cout<<"Content of second deque:";
     for(itr=second.begin();itr!=second.end();++itr)
    cout<<*itr<<" ";
    return 0;
    }

输出:

Content of first deque:10 20 30 40 50 
Content of second deque:1 2 3 4

在本例中,swap() 函数将第一个双端队列的内容与第二个双端队列的内容进行交换。





相关用法


注:本文由纯净天空筛选整理自 C++ Deque swap()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。