隊列還是抽象數據類型或線性數據結構,遵循特定的操作順序。順序為先進先出(FIFO)。在FIFO數據結構中,添加到隊列中的第一個元素將是第一個要刪除的元素。
queue::swap()
swap()函數用於交換兩個隊列的內容,但是隊列的類型必須相同,盡管大小可能有所不同。
用法:
queue1.swap(queue2) OR swap(queue1, queue2) 參數: queue1 is the first queue object. queue2 is the second queue object.
返回值:沒有
例子:
Input: queue1 = {1, 2, 3, 4} queue2 = {5, 6, 7, 8} queue1.swap(queue2); Output:queue1 = {5, 6, 7, 8} queue2 = {1, 2, 3, 4} Input :queue1 = {'a', 'b', 'c', 'd', 'e'} queue2 = {'f', 'g', 'h', 'i'} queue1.swap(queue2); Output:queue1 = {'f', 'g', 'h', 'i'} queue2 = {'a', 'b', 'c', 'd', 'e'}
錯誤和異常
1.如果隊列的類型不同,則會引發錯誤。
2.它具有基本的無異常拋出保證。
// CPP program to illustrate
// Implementation of swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Take any two queues
queue<char> queue1, queue2;
int v = 96;
for (int i = 0; i < 5; i++) {
queue1.push(v + 1);
v++;
}
for (int i = 0; i < 4; i++) {
queue2.push(v + 1);
v++;
}
// Swap elements of queues
queue1.swap(queue2);
// Print the first queue
cout << "queue1 = ";
while (!queue1.empty()) {
cout << queue1.front() << " ";
queue1.pop();
}
// Print the second set
cout << endl << "queue2 = ";
while (!queue2.empty()) {
cout << queue2.front() << " ";
queue2.pop();
}
return 0;
}
輸出:
queue1 = f g h i queue2 = a b c d e
時間複雜度:線性即O(n)
相關用法
注:本文由純淨天空篩選整理自AKASH GUPTA 6大神的英文原創作品 queue::swap() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。