首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

处理stl容器的大小

对于STL容器(包括vector、list、deque、set、multiset、map、multimap、unordered_set、unordered_map等)的大小处理,有如下几个方面需要关注:

  1. 容器的内存分配

STL容器在内存中是以连续空间分配的方式实现的。当容器需要扩大时,它会在内存中分配一块更大的连续空间,并将元素复制到新容器的内存中。

  1. 容器的扩容

当容器中的元素数量超过容器的容量时,就需要对容器进行扩容。扩容过程就是将容器中的元素复制到新的更大的容器中,并释放旧容器的内存。

  1. 容器的内存分配策略

STL中的容器都是基于指针的,因此容器的内存分配策略也是基于指针的。在STL中,容器的内存分配策略有3种:

  • 在堆上分配内存:当容器在内存中分配一块更大的连续空间时,就会使用堆上分配内存的方式。这种方式会在内存堆中申请一块大小固定的内存,并在其周围预留一些空间,以便于后续的扩容操作。
  • 在栈上分配内存:当容器的容量不足以分配一块更大的连续空间时,就会使用栈上分配内存的方式。这种方式会在栈中申请一块大小固定的内存,并在其周围预留一些空间,以便于后续的扩容操作。
  • 在静态数组上分配内存:当容器的容量不足以分配一块更大的连续空间时,就会使用静态数组上分配内存的方式。这种方式会在静态数组中申请一块大小固定的内存,并在其周围预留一些空间,以便于后续的扩容操作。
  1. 容器的内存释放

当容器中的元素被删除或容器被销毁时,就会进行容器的内存释放。内存释放就是将容器中的元素释放掉,并将其占用的内存返回给操作系统。

以上就是STL容器的大小处理机制,它能够保证容器的内存分配和释放都是高效的,并且能够支持大规模容器的内存管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

11分2秒

变量的大小为何很重要?

5分34秒

3.歌词显示文字大小的适配.avi

8分12秒

52_尚硅谷_HDFS_块的大小设置.avi

24分5秒

103-SQL大小写规范与sql_mode的设置

21分28秒

第8章:堆/69-堆空间大小的设置和查看

14分51秒

第9章:方法区/90-设置方法区大小的参数

6分41秒

33_容器卷之间的继承

2分44秒

python开发视频课程6.06如何转换字符串的大小写

4分3秒

038_range函数_大小写字母的起止范围_start

335
1时31分

玩转云原生容器场景的 Prometheus 监控

1分48秒

65_测试容器上的微服务

11分23秒

67-IOC容器创建对象的方式

领券