用给定大小初始化的 std::vector 的值是多少?

Vic*_*sen 3 c++ memory initialization vector std

如果我这样初始化std::vector

vector<int> sletmig(300);
Run Code Online (Sandbox Code Playgroud)

它将所有 300 个值设置为零,还是保留我计算机内存中的内容?

Cor*_*mer 5

它们将被设置为零,因为元素将被初始化

来自cppreference

explicit vector( size_type count );
Run Code Online (Sandbox Code Playgroud)

使用count 默认插入的实例构造容器T。不制作任何副本。

但要知道你也可以指定所有元素的默认值,例如

vector<int> sletmig(300, 0);
Run Code Online (Sandbox Code Playgroud)

再次来自cppreference

vector( size_type count, 
        const T& value,
        const Allocator& alloc = Allocator());
Run Code Online (Sandbox Code Playgroud)

使用count具有value值的元素的副本构造容器。