0.若定义vector(3), 则有v[0],v[1],v[2]三个,vector是从0开始的,他就是一种动态到的数组。
1.定义的时候为vector v而没有vector v(10)时,用v.push_back(6)赋值,容器按照v[0],v[1]...扩张,代码形式为:v.push_back(6)
2.元素遍历
(1)定义迭代器注意迭代器和对象的类型要相同,例如int型,vector<int>::iterator it。 it相当于指针,输出其指的元素的时候,代码形式为:cout<<*it<<endl;
(2)使用at()函数,v.at(3)就是指向第三个元素。v是从v.at(0)开始的。
(3)数组形式进行遍历: cout<<v[0]<<” “<<v[1]<<endl;
3.Insert()函数可以在对象的任意位置插入一个元素。当插入的元素放在最开始或者最后面的时候用v.insert(v.begin(),9)或者v.insert(v.end(),4)在插入的同时容器自动扩张一个元素空间,插入位置后的所有元素一次向后都动一个位置。代码形式为:v.insert(v.begin(),9);
4.erase()函数可以删除对象中的一个元素或者一段区间的所有元素(若是一段区间则不删除区间尾部的元素)
5.clear()方法可以一次性删除vector中的所有元素.
6.reverse算法可以把向量中某段迭代器区间元素反向排序(若是一段区间则不反向区间尾部的元素 当时把所有元素都反向时用reverse(v.begin(),v.end())),当用这个算法时需要定义头文件“#include<algorithm>”。
7.size()函数可以返回向量的大小,即元素的个数。代码形式为:cout<<v.size();
8.empty()方法可以返回向量是否为空,当返回值为1时为空,返回值为0时不为空。代码形式为:v.empty();
9.sort是把一组数据默认为从小到大排序的,使用sort排序需要头文件“#include<algorithm>”
(若是一段区间则不排序区间尾部的元素 当把所有元素都排序时用,其代码形式为:sort(v.begin(),v.end())
10. v.begin()和v.end()相当于头指针和尾指针,v.begin()指向第一个元素,v.end()指向最后一个元素的后面一个空地方,相当于队列里面的头指针和尾指针,只是为了防止,当只有一个元素的时候v.begin()和v.end()不相等。
11. v.back()是向量最后一个元素,v.pop_back()是弹出(即删除)向量最后一个元素。v.front()是向量的第一个元素。