size是当前元素个数,capacity是已分配内存可容纳的最大元素数;2. 添加删除元素改变size,capacity仅在扩容时增加且不因pop_back减少;3. capacity通常大于等于size,扩容有性能开销。

std::vector 的 size 和 capacity 是两个不同的概念,理解它们的区别对高效使用 vector 至关重要。
size 表示 vector 当前存储的有效元素数量。它反映的是你可以通过下标或迭代器访问的实际数据量。
调用 vec.size() 返回的就是这个值。当你添加或删除元素时,size 会动态变化。
capacity 指的是 vector 在不重新分配内存的前提下,最多能容纳多少元素。它代表的是底层内存空间的容量,而不是当前使用量。
立即学习“C++免费学习笔记(深入)”;
调用 vec.capacity() 可查看当前容量。capacity 一般大于或等于 size。
考虑以下代码:
std::vector可以看到,即使只存了 3 个元素,capacity 可能已经更大;reserve 显式增加 capacity,但不影响 size。
避免频繁扩容带来的性能损耗,可以提前规划容量。
基本上就这些。size 是“用了多少”,capacity 是“总共能用多少而不换地方”。掌握这两个概念,能写出更高效的 vector 操作代码。
以上就是C++中std::vector的capacity和size有什么区别_C++容器容量管理与size/capacity解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号