【C++/嵌入式梳理】一、37.算法 | 迭代器 | 其他

本文详细介绍了C++中的算法,特别是迭代器的实现、作用以及与指针的区别,阐述了迭代器在STL中的核心地位,以及迭代器在删除容器元素时的注意事项。同时,文章还探讨了STL中resize和reserve的区别,以及在管理容器大小时如何选择。此外,还涉及了STL中hashtable的实现、扩容机制及冲突解决方法,以及STL的两级空间配置器的工作原理。
摘要由CSDN通过智能技术生成

算法

120.STL里resize和reserve的区别是什么?

在STL中,resize()和reserve()都是用于管理容器大小的函数,但它们的作用不同。

  1. resize()

resize()函数用于改变容器的大小,它会在必要时增加或减少容器的元素数量,使其达到指定的大小。如果指定的大小比容器的当前大小大,则在容器的末尾插入新的元素以达到指定大小;如果指定的大小比容器的当前大小小,则从容器的末尾删除元素以达到指定大小。需要注意的是,当使用resize()函数时,容器中的元素会被默认初始化。

  1. reserve()

reserve()函数用于预留容器的存储空间,它并不改变容器的大小。reserve()函数接受一个参数n,表示预留的存储空间大小。当我们需要向容器中添加大量元素时,可以使用reserve()函数来提前预留足够的存储空间,以避免频繁地扩展容器大小导致的性能问题。

需要注意的是,reserve()函数只是预留存储空间,并不会改变容器的大小。如果我们向容器中添加元素,容器的大小仍然会根据实际添加的元素数量而变化。同时,reserve(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值