vector函数简介
函数: #include <vector>
size()
容器中元素个数
max_size()
最大可以存储的元素个数
capacity()
实际存储空间的大小,大于或等于size()
empty()
容器是否为空,size()==0为true
reserve()
重新分配空间的大小
resize()
重新分配容器的元素个数
front()
第一个元素的值
back()
最后一个元素的值
at()
某个位置的元素值,并检查位置是否越界
begin()
正序第一个元素的位置
end()
正序最后一个元素的下一个位置
rbegin()
反序的第一个元素的位置,也是正序最后一个元素
rend()
反序的最后一个元素下一个位置
push_back()
在末尾追加一个元素,size()增1
assign()
重新分配元素,将会丢弃原有全部元素
pop_back()
删除最后一个元素,size()减1
clear()
清空所有元素
insert()
在指定位置插入一个或多个元素
erase()
删除指定位置的一个或连续几个元素
shrink_to_fit()
削减多占用的空间,使得capacity()=size()
swap()
交换两个容器的全部元素
算法: #include <algorithm>
find()
查找指定的两个位置间是否存在某个值,与string::find()相似
reverse()
把全部元素倒序存放 (长得有点像reverse|reserve)
copy()
复制两个位置间的元素到另一个容器的指定位置并覆盖它的元素
remove()
移除等于某个值的所有元素,但并未删除移掉元素的空间
【比如】{1,0,2,3,0,0,4,0,5}去掉0后剩下的{1,2,3,4,5}去覆盖掉容器最前面的元素{1,2,3,4,5,0,4,0,5},原有顺序并没改变,没被覆盖掉的元素仍保留在原位置处。
sort()
默认升序排序,降序要重写排序比较函数
【其实】不用写函数那么麻烦,先排序再倒序不就是降序排列了,见如下测试代码:
//测试代码: vector <int> vect(10); for_each(vect.begin(),vect.end(),[](int &i)->void{i=rand()%10;}); for (auto v:vect) cout<<v<<" "; cout<<endl; sort(vect.begin(),vect.end()); for (auto v:vect) cout<<v<<" "; cout<<endl; reverse(vect.begin(),vect.end()); for (auto v:vect) cout<<v<<" "; cout<<endl; //运行结果: ----------------------------------- 1 7 4 0 9 4 8 8 2 4 0 1 2 4 4 4 7 8 8 9 9 8 8 7 4 4 4 2 1 0 -----------------------------------