vector的size与capacity函数
一、vector的基本知识
初始化等一些基本操作请看这篇博客。
为了区分size与capacity,以及capacity的增长规律。我去看了c++ vector官网,以及c++的源码。大家也可以移至官网自行查看,养成查手册的好习惯,以下是我摘抄的重点,以及结合源码进行的分析。
二、size
这是上述网页中的描述,返回vector的元素数目,还特地提到,不等于存储容量。
这是官网中给出的例子。
// vector::size
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myints;
std::cout << "0. size: " << myints.size() << '\n';
for (int i=0; i<10; i++) myints.push_back(i);
std::cout << "1. size: " << myints.size() << '\n';
myints.insert (myints.end(),10,100);
std::cout << "2. size: " << myints.size() << '\n';
myints.pop_back();
std::cout << "3. size: " << myints.size() << '\n';
return 0;
}
输出,这个没有疑问,就是有多少元素。
0. size: 0
1. size: 10
2. size: 20
3. size: 19
三、capacity
这是官网给出的介绍,返回分配的存储容量规模,大于或等于size,这样分配是为了防止每次有新数据push进来的重新分配。