STL中resize()和reserver()区别

resize(n)与容器的size有关,而且n个元素都初始化了。

reserve(n)与容器的capacity有关,而且没有初始化,不能访问。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STL vector的resize函数用于改变容器的大小,可以增加或减少元素的数量。它的语法如下: ```cpp void resize(size_type count); void resize(size_type count, const value_type& value); ``` 第一个重载函数接受一个`count`参数,表示调整后的容器大小。如果`count`小于当前容器的大小,则会删除多余的元素;如果`count`大于当前容器的大小,则会添加默认构造的元素来填充新位置。 第二个重载函数还接受一个`value`参数,表示要用于填充新位置的元素值。 以下是一个使用resize函数的示例: ```cpp #include <iostream> #include <vector> int main() { std::vector<int> myVec; std::cout << "Before resize: size = " << myVec.size() << std::endl; myVec.resize(5); std::cout << "After resize: size = " << myVec.size() << std::endl; return 0; } ``` 输出结果为: ``` Before resize: size = 0 After resize: size = 5 ``` 在这个示例,我们先创建了一个空的vector,然后调用resize函数将容器大小改为5。通过查看容器的大小,我们可以看到大小已经改变为5,并且新位置被默认构造的元素填充。 注意,如果使用第二个重载函数并提供了`value`参数,则新位置将使用指定的值进行填充。例如,`myVec.resize(5, 10)`会将容器大小改为5,并用值为10的元素填充新位置。 需要注意的是,resize函数可能会导致元素的增加或删除,因此在使用时要小心,确保不会丢失或产生不必要的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值