c++定义结构体队列

最近写概要设计头有点大,写点博客轻松下。。

c++队列是一种容器适配器,创建一个线性int型队列如:queue<list<int>> q;或双向int型队列:queue<deque<int>>;如果是结构体或者类,把int替换掉就行。整个例子看下:

#include <queue>
#include <iostream>
using namespace std;
struct MyStruct{
    int num;
};//c++里,结构体和类几乎等同作用。习惯上数据结构不带函数玩

int main()
{
    queue<MyStruct> q;
    MyStruct s1;
    s1.num = 66;
    q.push(s1);
    MyStruct s2;
    s2.num = 88;
    q.push(s2);
MyStruct s1copy = q.front(); //在c++里,struct本身是一种类,声明处可以省掉typedef,这点与c有所区别 MyStruct s2copy = q.back(); cout << "s1 front :" << s1copy.num << endl; cout << "s2 back :" << s2copy.num << endl; for(int i = 0; i < q.size(); i++)
    {
        q.pop();
    } if (q.empty()) { cout << "empty " << endl; } system("pause"); return 0;}


双向队列与此类似。参考:https://zhidao.baidu.com/question/391736530649872125.html


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 中,你可以使用自定义的排序规则来定义优先队列(`priority_queue`)的排序方式。优先队列是一种特殊的队列,它按照指定的排序规则自动对元素进行排序。 以下是一个示例,展示如何定义优先队列的排序规则: ```cpp #include <iostream> #include <queue> struct CustomComparator { bool operator()(const int& a, const int& b) const { // 自定义的排序规则,按照数字的绝对值进行排序 return abs(a) > abs(b); } }; int main() { // 使用自定义的比较函数对象来定义优先队列的排序规则 std::priority_queue<int, std::vector<int>, CustomComparator> myQueue; // 插入一些元素 myQueue.push(5); myQueue.push(-10); myQueue.push(3); myQueue.push(-7); // 输出队列中的元素(按照自定义的排序规则) while (!myQueue.empty()) { std::cout << myQueue.top() << " "; myQueue.pop(); } std::cout << std::endl; return 0; } ``` 在上面的示例中,我们定义了一个名为 `CustomComparator` 的结构体,它重载了圆括号操作符 `()`,用于比较两个整数。在此示例中,我们按照数字的绝对值进行排序,并且使用了逆序,即绝对值较大的元素排在前面。 然后,在 `std::priority_queue` 的模板参数中指定使用 `CustomComparator` 作为比较函数对象,这样优先队列就会按照我们定义的排序规则进行排序。 最后,我们通过循环从队列中弹出元素,并输出它们(按照自定义的排序规则)。 希望这个示例能帮助你理解如何在 C++定义优先队列的排序规则!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值