首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C++STL中vector使用策略(一)

C++STL中vector使用策略(一)

作者头像
mathor
发布2018-06-22 10:44:29
发布2018-06-22 10:44:29
7910
举报
文章被收录于专栏:mathormathor

       vector是STL中一种可变大小数组的序列容器。就像数组一样,vector也采用连续存储空间来存储元素,也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效,但是又不像数组,它的大小是动态改变的。

       为了可以使用vector,必须在你的头文件中包含下面的代码

代码语言:javascript
复制
#include <vector>

创建一个vector

代码语言:javascript
复制
//
创建一个type类型的空vector对象a
 vector<type> a;
 //创建包含500个type类型的vercot
 vector<type> a(500);
 //创建包含500个tyep类型的vector,并且都初始化为0
 vector<type> a(500,0);
 //创建一个a的拷贝b
 vector<type> b(a);

向vector添加一个数据

代码语言:javascript
复制
/*vector添加数据的缺省方法是push_back()。push_back()函数表示将数据添加到vector的尾部,并按需分配内存。例如,向vector<int> a中添加9个数据*/
 for(int i = 1;I < 10;i++)
 {
     cin>>n;
    a.push_back(n);
 }

       访问vector中的数据

代码语言:javascript
复制
//a.at();
 //a[];
 vector<int> v;
 for(int i = 0; i < 7; i++)
 {
     v.push_back(i);
 }
 cout<<v.at(6)<<endl;
 cout<<v[6];

删除vector中的数据

代码语言:javascript
复制
 /.erase(it)
 vector<int>::iterator it = v.begin();
 while(it != v.end())
 {
     if(x == *it)//x为要删除的值,不是下标
     {
       /.erase(it);//容器在删除或插入一个元素后,原来的迭代器会失效
     it = v.erase(it);//这才是正确用法
   }
   else
       ++it;
 }
    it = v.begin();
   while(it != v.end())
   {
     cout<<*it<<endl;
     it++;
   }

       vector成员函数(容量)

函数

意义

v.size()

容量大小

v.max_size()

向量最大容量

v.resize()

更改向量大小

v.capacity()

向量真实大小

v.empty()

向量判空

       vector成员函数(修改)

函数

意义

v.assign()

多个元素赋值

v.push_back()

末尾添加元素

v.pop_back()

末尾删除元素

v.inser(it,n,x)

在迭代器it的前面插入n元素x

v.erase()

删除当前迭代器位置的元素

v.swap()

交换两个向量元素

v.clear()

清空向量元素

       vector成员函数(迭代器)

函数

意义

v.begin()

开始指针

v.end()

末尾指针

       vector成员函数(元素访问)

函数

意义

v[1]

下标访问

v.at(1)

下标访问

v.front()

访问第一个元素

v.back()

访问最后一个元素

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档