在C++ STL中,vector是一个动态数组,可以根据需要在运行时增加或减少元素。vector有两个重要的属性:容量(capacity)和大小(size)。
容量(capacity)
容量(capacity)指的是vector在不重新分配存储空间的情况下可以容纳的最大元素数量。在创建vector时,会为其分配一些初始空间,因此即使向vector中添加了许多元素,也不会每次都重新分配内存空间,从而减少了程序的执行时间。在vector中,可以使用capacity函数来获取当前容量大小。例如:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec(5, 10); // 初始大小为5,元素值都为10
std::cout << "Capacity of vec: " << vec.capacity() << std::endl; // 输出容量
return 0;
}
输出结果:
Capacity of vec: 5
大小(size)
大小(size)指的是vector中当前元素的数量。可以使用size函数来获取vector的实际大小。例如:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec(5, 10); // 初始大小为5,元素值都为10
std::cout << "Size of vec: " << vec.size() << std::endl; // 输出大小
return 0;
}
输出结果:
Size of vec: 5
需要注意的是,size返回的是实际元素的数量,而不是容量。当向vector中添加或删除元素时,其大小会发生变化,但是容量不一定变化。可以使用reserve函数来手动设置vector的容量,但这并不会影响其大小。
总之,容量和大小是vector中的两个重要属性,容量指的是vector可以容纳的最大元素数量,而大小指的是vector实际包含的元素数量。