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

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

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

#include <vector>

创建一个vector

//
创建一个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添加一个数据

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

       访问vector中的数据

//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中的数据

 /.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()

访问最后一个元素

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏增长技术

App Guide相关

##TourGuide https://github.com/worker8/TourGuide

822
来自专栏专知

2018年SCI期刊最新影响因子排行,最高244,人工智能TPAMI9.455

2018年6月26日,最新的SCI影响因子正式发布,涵盖1万2千篇期刊。CA-Cancer J Clin 依然拔得头筹,其影响因子今年再创新高,达244.585...

1472
来自专栏搞前端的李蚊子

Html5模拟通讯录人员排序(sen.js)

// JavaScript Document  var PY_Json_Str = ""; var PY_Str_1 = ""; var PY_Str_...

6356
来自专栏Hadoop数据仓库

Oracle sqlldr 如何导入一个日期列

1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NULLCO...

1876
来自专栏余生开发

echarts太阳分布图-饼图来回穿梭

var dom = document.getElementById("container");

1422
来自专栏MelonTeam专栏

Bitmap 源码阅读笔记

导语: Android 系统上的图片的处理,跟Bitmap 这个类脱不了关系,我们有必要去深入阅读里面的源码,以便在工作中能更好的处理Bitmap相关的问题...

2608
来自专栏码匠的流水账

java9系列(五)Stack-Walking API

java9新增这个类的目的是提供一个标准API用于访问当前线程栈,之前只有Throwable::getStackTrace、Thread::getStackTr...

471
来自专栏老码农专栏

一些流行Java MVC框架的调用栈

1283
来自专栏前端儿

Web 前端颜色值--字体--使用,整理整理

颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义。对光源进行设置的最低值可以是 0(十六进制 00)。最高值是 2...

2752
来自专栏WOLFRAM

向日葵中的数学之美

1923

扫码关注云+社区