顺序容器5
#include<queue>
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
const int SPLIT_TIME_MIN=500;
const int SPLIT_TIME_MAX=2000;
class Cell;
priority_queue<Cell>cellQueue;
class Cell{
private:
static int count;
int id;
int time;
public:
Cell(int brith):id(count++){
time=brith+(rand()%(SPLIT_TIME_MAX-SPLIT_TIME_MIN))+SPLIT_TIME_MIN;
}
int getId() const {return id;}
int getSplitTime() const{return time;}
bool operator<(const Cell& s) const{return time>s.time;}
void split(){
Cell child1(time),child2(time);
cout<<time<<"s:Cell #"<<id<<"splits to #"
<<child1.getId()<<"and #"<<child2.getId()<<endl;
cellQueue.push(child1);
cellQueue.push(child2);
}
};
int Cell::count=0;
int main()
{
srand(static_cast<unsigned>(time(0)));
int t;
cout<<"Simulation time: ";
cin>>t;
cellQueue.push(Cell(0));
while(cellQueue.top().getSplitTime()<=t){
cellQueue.top().split();
cellQueue.pop();
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?