📜  C ++ STL中向量的优先级队列及其示例

📅  最后修改于: 2021-05-31 23:24:11             🧑  作者: Mango

STL中的优先级队列优先级队列是一种容器适配器,经过专门设计,使得队列中的第一个元素是队列中所有元素中最大的,并且元素的顺序是非递增的(因此我们可以看到队列中的每个元素具有优先级{固定订单})

STL中的Vector Vector与动态数组相同,具有在插入或删除元素时自动调整自身大小的能力,并且容器自动处理其存储。向量元素放置在连续的存储中,以便可以使用迭代器对其进行访问和遍历。

STL中向量的优先级队列:向量的优先级队列在设计复杂的数据结构时可能非常有效。

句法:

priority_queue> pq;

例如:考虑一个简单的问题,我们必须打印队列中的最大向量。

// C++ program to demonstrate
// use of priority queue for vectors
  
#include 
using namespace std;
  
priority_queue > pq;
  
// Prints maximum vector
void Print_Maximum_Vector(vector Vec)
{
    for (int i = 0; i < Vec.size(); i++) {
        cout << Vec[i] << " ";
    }
    cout << endl;
    return;
}
  
// Driver code
int main()
{
    // Initializing some vectors
    vector data_1{ 10, 20, 30, 40 };
    vector data_2{ 10, 20, 35, 40 };
    vector data_3{ 30, 25, 10, 50 };
    vector data_4{ 20, 10, 30, 40 };
    vector data_5{ 5, 10, 30, 40 };
  
    // Inserting vectors into priority queue
    pq.push(data_1);
    pq.push(data_2);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    // Inserting vectors into priority queue
    pq.push(data_3);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    // Inserting vectors into priority queue
    pq.push(data_4);
    pq.push(data_5);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    return 0;
}
输出:
10 20 35 40 
30 25 10 50 
30 25 10 50
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”