16,534
社区成员
发帖
与我相关
我的任务
分享
void resize(size_type _Newsize, _Ty _Val)
{ // determine new length, padding with _Val elements as needed
if (size() < _Newsize)
_Insert_n(end(), _Newsize - size(), _Val);
else if (_Newsize < size())
erase(begin() + _Newsize, end());
}
示例:
vector<string> ive;
ive.assign(100,"字符a");
ive.resize(50,"字符b");
ive.resize(200,"字符b");
所以
你第二次resize后50个元素是用erase自动释放的,提示:如果是指针元素,erase之前先释放指针元素指向的空间。
第三次resize了200,只是新Insert了150个元素。前面50个是原来的。看着源码应该好理解多了。