vector:
向量容器,动态数组,类模板
定义和初始化:
vector<T> v1; //v1是空vector,元素类型是T类型,执行默认初始化,int为0,string为空串
vector<T> v2(v1); //v2中包含有v1所有元素的副本
vector<T> v3(n,val); //v3包含了n个重复的元素,每个元素的值都是val
vector<T> v4(n); //v4包含了n个重复的执行了值初始化的对象
vector<T> v5{a,b,c,...} //以大括号中的元素初始化
vector中的操作
v.push_back(val) //向v的末端添加一个值为val的元素
v.pop_back() //删除最后一个元素
v.empty() //如果v不含任何元素,返回true,否则返回false
v.size() //返回v中元素个数,类型为vector<T>::size_type
v1==v2 //v1等于v2仅当他们的元素个素相等,以及各位置所对应的元素的值相等
<,<=,>,>= //以字典序进行比较
v[i] //通过下标访问v中第i个元素,不能用此添加,如果v为空就没有下标
v.erase(iterator position) //删除指定位置的元素
v.erase(iterator begin,iterator end) //删除指定范围的元素
v.insert(it,val) //在迭代器it前插入一个值为val的元素
迭代器:iterator
iterator的声明方式
例:
string:: iterator it;
vector<T>:: iterator it;
学习代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v;
v.push_back(50);
v.push_back(2991);
v.push_back(23);
v.push_back(9999);
cout << "向量v里面的数据:" << endl;
vector<int>::iterator i = v.begin();
while (i != v.end())
{
cout << *i << endl;
++i;
}
vector<int>::iterator iElement = find(v.begin(), v.end(),2991);//find()包含在algorithm头文件中
if (iElement != v.end())
{
int nPosition = distance(v.begin(), iElement); //distance()包含在algorithm头文件中
cout << "Value" << *iElement << endl;
cout << "nPosition" << nPosition << endl;
}
getchar();
return 0;
}