C++ / sequence workshop

序列类型选择与初始化结果实验室

推荐初始化值危险状态

01 · 先看问题,再选容器

选择最接近的情境。建议关注“表达意图”与“长度是否变化”,而不只看能否存放数据。

std::string

它直接表达文本意图,并提供查找、拼接与长度管理;无需用字符数组手工维护结尾标记。

类型长度主要语义
string可变文本
vector可变动态同类元素
array固定安全的固定序列
T[N]固定底层互操作;易退化为指针

02 · 读懂 () 与 {}

这里只展示标准定义的结果,不执行输入的任意代码。选一个表达式观察元素个数与内容。

std::vector<int> a(3);size = 3

圆括号中的单个整数表示“创建多少个元素”。int 元素被值初始化为 0。

边界:局部 int data[4]; 的元素具有不确定值。在给每个元素赋值前读取它们会产生未定义行为,所以实验台不会显示或猜测这些值。
{ }

花括号更像“给出元素清单”;圆括号对 vector 常用于指定数量与重复值。遇到相似写法时,先问:参数是在描述容器,还是在列举元素?