这里,vector<int>是底层容器(虽然通常不需要显式指定,因为priority_queue默认使用vector),greater<int>是比较器,用于确定元素的优先级。 2.3 常用操作 push(x): 向队列中添加一个元素。 pop(): 移除队首元素(优先级最高的元素)。 top(): 返回队首元素的引用(但不移除它)。 empty(): 检查队列是否为空。 s...
我们最后看下take方法的实现: publicE take()throwsInterruptedException {finalReentrantLock lock =this.lock; lock.lockInterruptibly();try{for(;;) { E first= q.peek();//取出第一个节点if(first ==null)//首节点为空说明队列为空,await等待available.await();else{//说明队列中有节点longdelay = firs...