📜  C++ STL中的queue :: swap()

📅  最后修改于: 2021-05-30 08:30:36             🧑  作者: Mango

队列也是抽象数据类型或线性数据结构,遵循特定的执行顺序。顺序为先进先出( FIFO )。在FIFO数据结构中,添加到队列中的第一个元素将是第一个要删除的元素。

队列::交换()
swap()函数用于交换两个队列的内容,但是队列的类型必须相同,尽管大小可能会有所不同。

句法:

queue1.swap(queue2)
            OR
swap(queue1, queue2)

Parameters:
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 
using namespace std;
  
int main()
{
    // Take any two queues
    queue 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)

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”