vector
1)vector介绍
- vector表示可变大小的数组序列容器,就想数组一样,vector也采用连续的存储空间来存储元素,因此可以用下标对元素进行访问。
- vector使用动态分配数组来存储它的元素,当新元素被插入而容量不够时,会重新分配一个数组,然后将全部元素移到数组中。这是一种代价很高的任务,因此尽量在使用vector之前就把空间分配完成,避免遍插边扩容。
- vs底下扩容机制1.5倍,g++里扩容机制2倍
2)vector常用接口
vector<int> ar;
vector<int> ar1(5, 0);
vector<int> ar2(ar1);
vector<int> ar3(ar1.begin(), ar1.end());
vector<int> ar4{
1,2,3,4,5 };
vector<vector<int>> ar5(2, vector<int>(2, 0));
vector<int>::iterator it = ar1.begin();
ar1.end();
it++;
vector<int>::reverse_iterator it_1 = ar1.rbegin();
ar1.rend();
it_1++;
ar1.size();
ar1.capacity();
ar1.empty();
int cap = ar.capacity();
for (int i = 0; i < 100; i++)
{
ar.push_back(i);
if (cap != ar.capacity())
{
cap = ar.capacity();
cout << cap << endl;
}
}
ar1.resize(13, 1);
ar1.resize(7);
ar1.reserve(20);
ar1.reserve(5);