deque 两头各是谁

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; #include <de

开始练习 →

用 std::queue 叫号

补全:1 到 5 号依次取票排进 std::queue,然后叫走 3 个号,输出现在排在最前面的号。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

只保留最近三条记录

补全:操作记录依次是 a、b、c、d、e,用 std::deque 只保留最近 3 条——每放进一条,超过 3 条就从左边丢掉最旧的。最后输出最旧的那条。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

打印机前面还有几页

补全:打印队列里依次是 备份(5 页)、转码(3 页)、阿泰的报告(4 页)。用 std::queue 从队头往后取,算出阿泰的报告开始打印之前一共要先打几页。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

把队列按顺序倒出来

补全:把 std::queue 里的人按出队顺序全部倒出来,用 - 连成一行输出。(std::queue 不能用 for 遍历,只能一个个 front 再 pop。) (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两个队列轮流合并

补全:一号队列里是 甲、丙、戊,二号队列里是 乙、丁。两个队列轮流各出一个(一号先出),谁空了就只从另一个出,把出来的顺序用 - 连成一行输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

任务队列为什么不用栈

第 1 步:缓冲区只有 2 格,来了 5 个 第 2 步:第 1 个:有空位,放进去 第 3 步:第 2 个:有空位,放进去 第 4 步:第 3 个:满了,丢掉 第 5 步:第 4 个:满了,丢掉 第 6 步:第 5 个:满了,丢掉 第 7

开始练习 →

缓冲装满又来新数据

有界缓冲装满之后又来了新数据,常见的两种处理是【0】。

开始练习 →

三个任务谁最后被处理

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; #include <de

开始练习 →

缓冲区丢了几个

运行下面这段程序(缓冲区最多装 2 个): #include <iostream> #include <string> #include <vector> using namespace std; in

开始练习 →