*
*
********************************************
* vector容器的基础说明:
********************************************
*
* 可进行随机访问,并且实现了在容器的尾端插入新元素
* Random Access Container 和 Back Insertion Sequence
* 在尾端插入、删除元素的时间复杂度为O(1),其它位置为O(n),n为元素个数
* 对于插入的元素可以动态调整所占空间
* 使用vector必须使用宏语句#include <vector>
*
**************************************************************************************
*
* 创建vector对象:
* 1.vector<int> a;
* 2.vector<int> a(10); //具有10个元素的对象a,每个元素默认值为0
* 3.vector<char> a(5,'k');
* 4.vector<char> b(a); //vector<char> c(a.begin(),a.end())
*
**************************************************************************************
*
* 初始化赋值
* void push_back(const T& value)
*
**************************************************************************************
*
* 遍历访问
* reference operator[](size_type n) //可用数组方式访问vector元素
*
**************************************************************************************
*
* 常用函数
*
* bool empty();
* size_type size();size_type max_size();size_type capacity();
* reference front();reference back();
* void pop_back();void push_back();
* void clear();
*
*
*
********************************************
* Author: cumirror
* Email: tongjinooo@163.com
********************************************
*
*/
#include <iostream>
#include <vector>
int main()
{
using namespace std;
vector<int> a(10,5);
// 数组方式
cout<<"数组"<<endl;
a[0]=100;
for(int s=0;s<a.size();s++){
cout<<a[s]<<endl;
}
// 迭代器方式
cout<<"迭代器"<<endl;
vector<int>::iterator i,iend;
i=a.begin();
iend=a.end();
*i=101;
for(vector<int>::iterator j=i;j!=iend;j++){
cout<<*j<<endl;
}
// 元素插入,插入位置为迭代器所指之前
// 注意:有元素插入后,原来的迭代器会失效
cout<<"插入"<<endl;
a.insert(a.begin(),102);
// 删除时注意,它是一个半闭区间
// 也支持 erase(iterator pos)单个元素的删除
cout<<"删除"<<endl;
a.erase(a.begin()+4,a.begin()+6);
for(vector<int>::iterator k=a.begin();k!=a.end();k++){
cout<<*k<<endl;
}
// 反向遍历访问
cout<<"反向访问"<<endl;
vector<int>::reverse_iterator ri;
for(ri=a.rbegin();ri!=a.rend();ri++){
cout<<*ri<<endl;
}
return 0;
}