16.Vector的常见用法详解优化-[STL模板]
1.vector的定义 —动态
一个元素
vector<typename> name; //---动态变量
/* 例如
vector<int> a;
vector<char> b;
*/
一个数组
vector<typename> a[100]; //---动态数组
//代表a[0] ~ a[100] 间的每一个都是一个vector容器
2.vector元素的访问
下标访问
vector<int> vi;
访问vi[0] , vi[1] 类似数组
迭代器访问
vector<int>::iterator it; //迭代器的定义
通过:*it访问元素
迭代器访问实例:
//方法一 通过循环i实现
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> a;
for(int i=0;i<5;i++) //输入
{
a.push_back(i);
}
vector<int>::iterator it=a.begin();//令it指向容器a的首地址
for(int i=0;i<5;i++)
cout<<*(it+i);
return 0;
}
//方法二 通过迭代器自加实现 it++
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> a;
for(int i=0;i<5;i++) //输入
{
a.push_back(i);
}
vector<int>::iterator it=a.begin();//令it指向容器a的首地址
for(it;it!=a.end();it++)
cout<<*it;
return 0;
}
Tip:
a.begin() 取首地址
a.end()是取末尾的下一个地址
因为美国人思想左闭右开 故a.end()作为迭代器结束标志
超级重要:只有vector和sting容器中 可以使用a.begin+整数这种写法(迭代器访问方法一)
3.vector常用函数
(1)push_back(x)
在vector后面添加一个元素x
(2)pop_back()
删除vector的尾元素
(3)size()
获取vector的元素总数
(4)clear()
清空vector的所有元素
(5)insert(it,x)
在迭代器it的位置插入元素x
(6)erase()
erase(it) 删除迭代器it位置的元素
erase(first,last) 删除[ first,last)间的元素 左闭右开