关于局部变量和STL容器初始化问题
在函数内部定义局部变量和数组时,如果没有显式初始化,很容易出现奇怪的结果。
比如你在main函数中定义一个数组bool book[100];但是没有初始化它。如果在全局变量中,它其实是会默认初始化为空的。即全局变量中,它会自动bool book[100]={0};但是在局部变量中,其值是未定义的,可能包含随机值。因此,建议显示初始化内置类型的局部变量。
局部变量的初始化:
1. 内置类型(如 `int`, `char`, `bool` 等):
- 局部变量如果没有显式初始化,其值是未定义的,可能包含随机值。
- 因此,建议显式初始化内置类型的局部变量。
2. 标准库容器类型(如 `std::vector`, `std::queue` 等):
- 标准库容器类型(如 `std::vector`, `std::queue` 等)在定义时会自动调用其默认构造函数进行初始化。
- 这些容器在默认构造后是空的,不需要显式初始化。