在开头插入要挪几次

运行下面这段程序,它数的是「挪了几次」: #include <iostream> #include <string> #include <vector> using namespace std; int

开始练习 →

在末尾追加要挪几次

同样数「挪了几次」,这次是在末尾追加: #include <iostream> #include <string> #include <vector> using namespace std; int

开始练习 →

数开头插入挪了多少次

补全 insert,让它顺便统计挪动次数。在一排 4 个人的最前面插入一个,输出挪了几次。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

插在末尾又挪几次

同一个 insert,这次插在末尾。补全后输出挪了几次,和上一题比一比。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

给操作选出复杂度

补全 cost:按操作名返回复杂度。按下标访问和末尾追加是 O(1),开头插入和删除是 O(n)。补全后输出「开头插入」的复杂度。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

空表取第一个会怎样

第 1 步:size 为 0:一个都没放 第 2 步:这时连下标 0 都不合法 第 3 步:放进 1 个:只有下标 0 合法 第 4 步:下标 2 越界:先判断再取 i 3 一排一个人都没有,还去取下标 0,结果是【0】。

开始练习 →

at() 越界会抛什么

用 at() 取一个超出范围的下标,会抛出【0】。

开始练习 →

越界会走哪个分支

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

开始练习 →

只有一个人时反转

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

开始练习 →

判断这排是不是空的

补全 is_empty,然后输出一个新座位排是不是空的。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →