English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ A função swap() da Deque troca o conteúdo da fila dupla fornecida com a fila dupla passada como parâmetro do mesmo tipo.
O tipo da fila dupla deve ser o mesmo.
O tamanho da fila dupla pode ser desigual.
void swap(deque& second);
second:Esta é outra container de fila dupla, cujo conteúdo será trocado com a fila dupla fornecida.
ele não retorna nenhum valor.
Vamos ver um exemplo simples
#include <iostream> #include<deque> using namespace std; int main() { deque<string> str={"C é um linguagem de programação"}; deque<string> str1={"java é um linguagem de programação"}; str.swap(str1); iterator deque<string> itr=str.begin(); iterator deque<string> itr1=str1.begin(); cout << "após a troca, o valor de str é: " <<*itr; cout<<'\n'; cout << "após a troca, str1tem o valor: "<<"*itr1; return 0; }
Saída:
após a troca, o valor de str é: "java é um linguagem de programação" após a troca, str1tem o valor: "C é um linguagem de programação"
Neste exemplo, a função swap() troca str e str1do conteúdo. Agora, str contém "java é um linguagem de programação", e str1contendo "C é um linguagem de programação".
Vamos ver um exemplo simples quando duas filas duplas têm tipos diferentes.
#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; }
Saída:
error: não há função correspondente para a chamada 'std::deque<char>::swap(std::deque<int>&)
Neste exemplo, a função swap() causará um erro, porque as duas filas duplas têm tipos diferentes.
Vamos ver um exemplo simples, quando os tamanhos são diferentes.
#include <iostream> #include<deque> using namespace std; int main() { deque<int> first={1,2,3,4}; deque<int> second={10,20,30,40,50}; iterator deque<int> itr; first.swap(second); cout << "primeira fila dupla de conteúdo:"; for(itr=first.begin();itr!=first.end();++itr) cout<<*itr<<" "; cout<<'\n'; cout<<"Conteúdo da segunda fila dupla:"; for(itr=second.begin();itr!=second.end();++itr) cout<<*itr<<" "; return 0; }
Saída:
Conteúdo da primeira fila dupla:10 20 30 40 50 Conteúdo da segunda fila dupla:1 2 3 4
Neste exemplo, a função swap() troca o conteúdo da primeira fila dupla para a segunda fila dupla.