c++ vector.resize
时间: 2023-10-11 17:09:15 浏览: 94
C++的vector类提供了多种重载的resize()函数来改变向量的大小。根据引用,resize()函数有两种版本:
1. `void resize(size_type n)`:此版本将向量的大小改变为n。如果n小于当前向量的大小,则会截断超出n的元素。如果n大于当前向量的大小,则会在末尾插入默认构造的元素。这种版本不会为新元素赋值。
2. `void resize(size_type n, const value_type& val)`:此版本将向量的大小改变为n。如果n小于当前向量的大小,则会截断超出n的元素。如果n大于当前向量的大小,则会在末尾插入val值的元素。这种版本会为新元素赋值为val。
根据引用,还有另一种版本:
3. `void resize(size_type n, value_type val = value_type())`:此版本与第二种版本相同,但是在没有提供val参数时,默认使用元素类型的默认构造函数来为新元素赋值。
所以,c vector.resize(n)将改变向量的大小为n,不会为新元素赋值;c vector.resize(n, val)将改变向量的大小为n,并将新元素赋值为val;c vector.resize(n, val)将改变向量的大小为n,并将新元素赋值为val(如果未提供val,则使用元素类型的默认构造函数来赋值)。
阅读全文