vector是模板,由vector生成的模板必须包含vector中元素的类型。vector是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,vector是一个能够存放任意类型的动态数组。
(引用不是对象,所以不存在包含引用的vector)
1.push_back 在数组的最后添加一个数据;
2.pop_back 去掉数组的最后一个数据,如果vector为空,使用pop_back()将会产生异常结果,因此需要empty()来确定vector不为空。
3.at 得到编号位置的数据;
4.begin 返回v头指针,指向第一个元素;
5.end 返回v尾指针,指向向量最后一个元素的下一个位置;
6.front 返回首元素的引用;
7.back 返回尾元素的引用;
8.max_size 得到vector最大可以是多大;
9.capacity 当前vector分配的大小;
10.size 当前使用数据的大小;
11.reserve 改变当前vecotr所分配空间的大小;
12.erase 删除指针指向的数据项;
13.clear 清空当前的vector;
14.rbegin 反向迭代器,指向最后一个元素;
15.rend 反向迭代器,指向第一个元素之前的位置;
16.empty 判断vector是否为空;
17.swap 与另一个vector交换数据.
算法:
(1)
使用reverse将元素翻转:需要头文件 #include<algorithm>
reverse(vec.begin(),vec.end());将元素翻转,即逆序排列!
(在vecto r中,如果一个函数中需要两个迭代器,一般后一个都不包含)
(2)
使用 sort 排序:需要头文件 #include<algorithm>,
sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).
例子:
01:
求vector中的元素的平方
vector<int> v = { 1,2,3,4,5,6,7,8,9 };
for (auto& i : v) {
i *= i;
}
for (auto i : v) {
cout << i << " ";
}
cout << endl;