文章目录
一:STL
1:vector的三种遍历方式。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>a({1,2,3});
for(int i=0;i<a.size();i++)cout << a[i]<<' ';//和数组一样的遍历方式
cout << endl;
for(auto i=a.begin();i!=a.end();i++) cout << *i<< ' ';//使用迭代器遍历,迭代器相当于地址。
cout << endl;
for(int x:a)cout << x << ' ';//和string一样
cout << endl;
return 0;
}
2:vector中的auto函数:(重点)
(1):让编译器自己去推断类型,并且遍历
定义了一个x变量,但是不确定什么类型,为了方便,就用auto,让编译器自己去猜,x:a 是把a中的元素遍历并送到x中。通过结果也可以看出来,输出的是1234。 证明 x : a 确实是遍历了,把a中的元素送到了x里面。
(2)为了验证猜想,用最简单的int型数组试验一下。
如果auto是类型,那么 冒号:才代表遍历
经过尝试:
得出结论,为什么auto和冒号: 经常在一起使用,原因可能就是遍历的时候为了方便,不用去考虑类型了,只用把冒号后面想要遍历的一个字符串或者数组或者其他的类型,遍历到冒号前面的变量中,就不用自己再去判断类型了,很方便。
换个类型也一样
(3)试试double类型能否实现遍历
(4)试试long long 类型
(5)结论:auto只是为了让编译器自己识别数据类型,常与冒号一起使用,实现遍历,其他数据类型也可以,但是必须准确。
3:push_back()
在尾部插入一个元素
4:pop_back()
删除vector a的最后一个元素
调用两次: