答案是:size()返回vector当前元素个数,capacity()返回无需扩容的最大容量;例如vec.size()输出5,vec.capacity()可能输出10;两者区别在于实际使用与最大容纳量,插入超限时自动扩容。

在C++中,vector 是一个动态数组,支持自动扩容。要获取 vector 的大小和容量,可以使用其成员函数 size() 和 capacity()。
获取 vector 的大小(元素个数)
调用 size() 函数可以得到当前 vector 中已存储的元素个数。
例如:#include#include int main() { std::vector vec = {1, 2, 3, 4, 5}; std::cout << "大小: " << vec.size() << std::endl; // 输出 5 return 0; }
获取 vector 的容量(可容纳元素总数)
调用 capacity() 函数可以查看 vector 当前最多能容纳多少个元素,而无需重新分配内存。
例如:#include#include int main() { std::vector vec; vec.reserve(10); // 预留空间 std::cout << "容量: " << vec.capacity() << std::endl; // 可能输出 10 return 0; }
size 和 capacity 的区别
这两个值通常不相等,理解它们的区别很重要:
立即学习“C++免费学习笔记(深入)”;
- size():当前实际使用的元素数量
- capacity():在不重新分配内存的前提下,最多可存储的元素数量
- 当插入元素导致 size 超过 capacity 时,vector 会自动扩容(通常是翻倍)
基本上就这些。通过 size() 和 capacity() 可以清楚掌握 vector 的使用状态,便于性能优化和内存管理。











