判断这排还坐得下吗

补全 is_full:坐满了返回 true,还有空位返回 false。放进 4 个人之后(容量 4),输出它是不是满了。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

实现扩容换一排两倍长的

补全 grow:另开一排两倍长的座位,把人按原顺序搬过去,旧的那排用 delete[] 还回去。扩容之后只输出新的总座位数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

搬完之后人还在原位吗

同一个 grow。扩容不能打乱顺序。把 4 个座位坐满、扩容、再放进「北辰」,然后输出「下标 2 上的人/现在几个人」,格式如 甲/5。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

原生数组和 vector 的区别

int a[5]; 和 vector<int> v(5); 最大的区别是【0】。

开始练习 →

size 和 capacity 的区别

第 1 步:vector 背后有 8 格空间 第 2 步:size:已经放了 3 个 第 3 步:capacity:不扩容能放 8 个 第 4 步:v[5] 越过了 size,没人拦 3 7 5 vector 的 size() 和 capa

开始练习 →

原生数组越界会怎样

5 个元素的原生数组,用 a[10] 去访问,结果是【0】。

开始练习 →

reserve 后的容量

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {

开始练习 →

clear 以后容量还在吗

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {

开始练习 →

用 at() 让越界现形

补全 safe_get:用 at() 取值,下标越界时接住 out_of_range 异常并返回「越界」。输出下标 1 和下标 9 的结果,格式如 7/越界。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

数一数扩了几次容

补全:往空 vector 里依次 push_back 1..100,每当 capacity() 变了就计一次数,最后输出一共扩了几次。(扩容倍数由标准库决定;本平台的 g++ 每次把容量翻倍,从 1 开始。) (本题用 g++ -std=c

开始练习 →