摘要:
高级线程之线程池 1. 线程池产生 为什么会出现线程池? 在普通情况下,我们需要创建并启动一个线程,当任务完成时,我们将其销毁,这样存在两个不断重复的过程(创建和销毁) 解决方案:我们创建一个线程池,当我们需要使用进程时,从进程池中调用一个,使用完时又将其返回线程池中,这样就避免了两个重复的过程 2 阅读全文
摘要:
priority_queue默认是大根堆,如果需要使用小根堆,如下 int main(){ priority_queue,greater que; while(1){ int x=read(); que.push(x); if(x== 1){ while(!que.empty()) { cout 阅读全文
摘要:
单链表 基本结构 快慢指针及其应用 (1) 判断链表中是否有圈(亦称floyed判圈法) ACM例题: Uva 11549 原理:两个人跑步,A的速度大于B,如果跑道没有环,那么A永远是领先于B,如果有环,那么A必然会追上B. (2)寻找循环链表的入口 设环周期为r,相遇点为x,起点到入口长度为a, 阅读全文