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