您的位置:首页 > 编程语言 > C语言/C++

C++ STL学习笔记二 vector向量容器

2015-10-12 20:06 721 查看
*

*

********************************************

* 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: