當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C++ queue::swap()用法及代碼示例

隊列還是抽象數據類型或線性數據結構,遵循特定的操作順序。順序為先進先出(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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。