在C++ STL中,vector是一個動態(tài)數(shù)組,可以根據(jù)需要在運行時增加或減少元素。vector有兩個重要的屬性:容量(capacity)和大小(size)。
容量(capacity)
容量(capacity)指的是vector在不重新分配存儲空間的情況下可以容納的最大元素數(shù)量。在創(chuàng)建vector時,會為其分配一些初始空間,因此即使向vector中添加了許多元素,也不會每次都重新分配內(nèi)存空間,從而減少了程序的執(zhí)行時間。在vector中,可以使用capacity函數(shù)來獲取當前容量大小。例如:
#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;
}
輸出結(jié)果:
Capacity of vec: 5
大小(size)
大小(size)指的是vector中當前元素的數(shù)量??梢允褂胹ize函數(shù)來獲取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;
}
輸出結(jié)果:
Size of vec: 5
需要注意的是,size返回的是實際元素的數(shù)量,而不是容量。當向vector中添加或刪除元素時,其大小會發(fā)生變化,但是容量不一定變化??梢允褂胷eserve函數(shù)來手動設(shè)置vector的容量,但這并不會影響其大小。
總之,容量和大小是vector中的兩個重要屬性,容量指的是vector可以容納的最大元素數(shù)量,而大小指的是vector實際包含的元素數(shù)量。