在 C++ 代码中用容器代替 C 数组
6.4.9 ID_forbidCArray
相比 C 数组,C++ 的 std::array、std::vector 等容器更安全,且提供成员函数,以及标准库支持。
示例:
int a[3]{}, b[3]{};
array<int, 3> c{}, d{};
if (a >= b) { // Undefined behavior
....
}
if (c >= d) { // Well defined
....
}
C 数组可以退化成指针,例中 a >= b 比较指针的大小,但比较未指向同一数组的指针会导致未定义的行为;c 和 d 是标准容器,不会退化成指针,比较运算符也由标准库明确定义。