结构体符号重载(简单版+手动扩栈方法)
来源:互联网 发布:阿里妈妈淘宝联盟推广 编辑:程序博客网 时间:2024/06/06 06:25
PS:#pragma comment(linker, "/STACK:1024000000,1024000000") ------ 手动扩栈防止REorTLE
sort排序 and 顶端最大的优先队列 ------ 重载“<”
顶端最小的优先队列 ------ 重载">"
//#pragma comment(linker, "/STACK:1024000000,1024000000")--手动扩栈防止REorTLE#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>using namespace std;struct Point{int a;char str[105];bool operator < (const Point &other) const/*制定结构体与结构体比较时"<"的规则,不影响"<"的正常使用*/{if(a<other.a || a==other.a && strcmp(str, other.str)>0)return 1;/*重载后,sort时结构体按从小到大排序,优先队列顶端最大,可以直接用<来比较两个结构体大小*/return 0;}};Point s[10005];priority_queue<Point> q;int main(void){int i, n;scanf("%d", &n);for(i=1;i<=n;i++){scanf("%s%d", s[i].str, &s[i].a);q.push(s[i]);}sort(s+1, s+n+1);for(i=1;i<=n;i++)printf("%s %d\n", s[i].str, s[i].a);if(n>=2 && s[1]<s[2])printf("s[1]<s[2]\n");printf("the top is %s %d\n", q.top().str, q.top().a);return 0;}/*当且仅当结构体中重载"<"时sort和priority_queue才能使用,因为它们都用到了"<"而没有用到其他必要符号*/
阅读全文
1 0
- 结构体符号重载(简单版+手动扩栈方法)
- 结构体符号重载
- C++手动扩栈方法
- 超强手动扩栈方法
- 简单的方法重载
- 循环结构、方法的重载
- []符号重载
- 符号重载
- 结构体 ‘<’ 重载注意
- MFC 手动生成SDI结构的方法
- 手动赋值操作结构体
- 方法重载的简单例题
- sizeof()的结构体大小判断的简单方法
- Dev-cpp 手动扩栈方法
- C#手动回收内存的简单方法
- 手动下载Windows符号
- 结构体运算符重载
- 结构体运算符重载
- MySQL数据库(32)
- Spark-sparksql-自定义udf
- kotlin-配置
- 深入理解mybatis原理(二) 关联查询
- 设备驱动调试和移植的一般方法
- 结构体符号重载(简单版+手动扩栈方法)
- C++ 标准库概览
- Win XP仍为占有率第三系统!
- 数组完数
- java——反射机制
- TCP首部中URG与PSH的联系与区别以及6个控制位
- MySQL Spatial Extensions 地理信息
- mysql安装以及使用
- 516. Longest Palindromic Subsequence