C++中基类和派生类的一个应用

本文介绍了一个使用C++面向对象编程实现的公司员工签到系统。该系统中,员工是基类,主管是派生类。主管具备签到、按ID或签到顺序打印员工以及查找倒数第n个签到员工的功能。为了优化性能,签到排序采用了堆排序(priority_queue),确保时间复杂度不超过O(nlogn),避免极端情况下的退化。
摘要由CSDN通过智能技术生成

题意:一个公司有很多员工,也有主管。每天员工和主管都需要签到,但主管可以用签到机确认有多少人上班,也可以按员工ID顺序或签到顺序打印出上班的员工,还可以找出倒数第n个上班的员工是谁。

要求:

用面向对象的方法分析和实现;

所有操作的时间消耗和空间消耗越低越好,其中排序算法的时间复杂度不超过O(nlogn),极端情况下也不可以退化为n^2


思路:员工是基类,主管是派生类。选用排序方式:堆排序priority_queue,时间复杂度O(nlogn)

#include <iostream>

#include <string>

#include <vector>

#include <queue>

using std::cout;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值