69,336
社区成员
发帖
与我相关
我的任务
分享
struct Storage
{
unsigned int SIZE; // 储存单元容量
unsigned int PCT_USED; // 已用容量百分比,比如已经用了90%,那么PCT_USED=90
void addData(unsigned int size) // 新增数据时,修改PCT_USED
{
unsigned int used = SIZE * PCT_USED /100 + size;
PCT_USED = used / SIZE * 100;
}
void deleteData(unsigned int size) // 删除数据时,修改PCT_USED
{
unsigned int used = SIZE * PCT_USED /100 - size;
PCT_USED = used / SIZE * 100;
}
};
class StorageMan
{
private:
Storage st[N]; // 假定有N个Storage,此处当然可以用动态内存分配
public:
Storage getStorage()
{
// 在N个Storage中找到PCT_USED最低的Storage对象,并返回。
// 如果有多个Storage的PCT_USED相同,则返回SIZE最大的那个Storage
// 具体可以用快排进行排序
}
};