一:元素添加时扩容,VS1.5倍,Linux2倍,Clion2倍
二:
reserve(int new_size) //只改变capacity(new_size),size不变,空间内不真正创建元素对象
resize(int new_size /*, int init_value*/) //改变capacity(比new_size大)和size(new_size),创建对象
三:扩容时机:
#include <vector>
using namespace std;
int main()
{
std::vector<int> vec;
size_t cap = vec.capacity();
for (int i = 0; i < 100; i++)
{
vec.push_back(i);
//if (cap != vec.capacity())
{
cap = vec.capacity();
cout << "capacity: " << vec.capacity() << " size: " << vec.size() <<" vec[0]:" << &vec[0]<< endl;
}
}
}