在开头插入要挪几次
运行下面这段程序,它数的是「挪了几次」: #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 编译。)