码迷,mamicode.com
首页 > 其他好文 > 详细

STL——vector

时间:2018-12-11 21:55:23      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:指针   code   style   std   改变   函数   并且   pos   声明   

1.重要概念

  该标准容器时定义在namespace std中的模板,该模板的原型声明在头文件<vector>中。它的数据结构像一个数组,所以与其他的容器相比,vector更能非常方便和高效的访问单个元素。因此在vector中提供了随机访问迭代器

 

2.操作

(1)构造一个vector

vector<int> intvec;    //构造一个空vector

vector<int> intvec(othervect); //使用通类型othervec拷贝构造

vector<int> intvec(size);    // 构造一个有size个元素的vector,元素的值为默认构造函数赋的值

vector<int> intvec(size, elem); // 构造有size个元素并且元素初始值为elem

vector<int> intvec(begin, end); // 构造一个有迭代器begin到end-1之间的元素的vector

 

(2)访问

使用迭代器访问。

vector 类中声明了 typedef iterator,类似于指向元素的指针。

for (intiter = intvec.begin(); intiter != intvec.end();intiter++)
          cout<<*intvec<<"     ";

使用向量访问

  注意:向量访问时不会自动检测释放越界。越界是相对于 capacity而非 size

intvec.at(index);

intvec[index];

intvec.front();    //返回第一个元素

intvec.back();    //返回最后一个元素

 

(3)大小

vector有两个大小相关属性:size capacity

intvec.capacity();    // 返回capacity

intvec.empty();    // 检查size是否等于0

intvec.size();    // 返回 size

intvec.max_size();        // 返回可用的最大空间

intvec.resize(num);    // 修改 size

intvec.resize(num, elem);    // 修改 size, 新增加的元素赋值为elem

intvec.reserve(num) ;    // 改变capacity

此外,如果 size == capacity ,再进行 push_back, 也会导致 size 和 capacity 增加

 

(4)操作元素

注意下面的 position 和 beg ,end 都为 通类型迭代器

intvec.clear();    // 将 size = 0

intvec.erase(position);    // 注意 position 是 相同类型的迭代器

intvec.erase(begin, end); // 删除 begin 到 end-1 的元素

intvec.insert(position, elem);

intvec.insert(position, n, elem); // 将 n 个值为 elem的元素插入 position 

intvet.insert(position, beg, end); // 将 beg 到 end-1 的元素插入position

intvec.push_back(elem);    // 末尾插入

intvec.pop_back();    // 删除最后元素

 

STL——vector

标签:指针   code   style   std   改变   函数   并且   pos   声明   

原文地址:https://www.cnblogs.com/yangxinrui/p/10105147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!