1. vetcor介绍及使用方法
1.1 什么是vector
1. vetcor是一种可以自己扩容的数组(扩大后不会变小)。
2. vector采用的连续存储空间来存储元素,这意味着我们可以小标的方式来对其进行访问。
3. vetcor在进行扩容的时候会尝试直接在其后面的空间进行扩容,如果后面的空间被其他的数据给使用了,那么它会寻找一块足够存放的下扩容候的它的空间,然后把自己转移进那块空间(一般来说vetcor在设计的时候都是进行2倍扩容)。
4. 因为vector在实现的时候我们会使用一个双指针分别指向它的头(begin())和它的尾(end())。所以它的尾插效率会很高,而它的头插效率会很低(因为需要把里面的元素一个个都向后移动一位)。
PS:在vector里面begin()是指向第一个元素的,而end()则是指向最后一个的下一个。
1.2 vetcor的使用
函数名字 | 作用 |
---|---|
begin() | 返回头部的位置 |
end() | 返回最后一个的下一个的位置 |
swap() | 交换两个vector的头和尾(即交换两个vector的元素) |
reserve() | 提前开辟空间,避免频繁扩容 |
push_back() | 尾插 |
capacity() | 返回vector的capacity |
size() | 返回vector的size |
[] | 这个就是在里面填下标,然后就可以返回下标对应的元素 |
resize() | 改变size的大小(大于size就扩容size,小于size就删除多余的元素并减小size) |
erase() | 删除单个元素或者多个元素(填入要删除的开头和结尾) |
pop_back() | 尾删 |
insert(it,x) | 在指定位置it上插入元素x |
empty() | 判断是否为空,为空返回true,否则返回false |