Vector是什么?

  vector翻译为向量,从某种角度来说就是一个可以变长的数组,它会根据需要自动扩充数组的容量,除此之外其是一个STL中的模板类,其

还具有一些内部的方法。

Vector的使用方法

1.添加头文件

# include <iostream>
# include <vector>
using namespace std;

2.定义vector的对象

vector<int> name;
vector<double> name;//双精度型
vector <float> name;//浮点数型
vector <char> name;//字符型
vector<vector<int>> name;//类似二维数组

3.访问vector内部元素

1)通过下标访问元素

//通过下标来访问
vector<typename> v;
cout<<v[]<<endl;

2)通过迭代器来访问

迭代器可以理解为类似指针的东西,定义其的方法。

vector<typename> ::iterator it;
vector<int>::iterator it;
vector<float>::iterator it;

举例

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
vector<int> vi;
for(int i=;i<=;i++)
{
vi.push_back(i);
}
//vi.begin()是取vi的首地址,it指向该地址
vector<int>::iterator it=vi.begin();
for(int i=;i<;i++)
{
cout<<*(it+i)<<endl;
}
}

结果

注意begin()函数返回的是vector数组的首地址,而end()并不是返回尾地址,而是末尾元素的下一个元素的地址。除此之外迭代器还实现了两种自增操作it++和++it

因此使用迭代器遍历的第二种方法。

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
vector<int> vi;
for(int i=;i<;i++)
{
vi.push_back(i);
}
  //不支持it<vi.end()的写法
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++)
{
cout<<*it<<' '<<endl;
}
return ;
}

4.常用函数的使用

1)push_back()

功能:在vector的末尾后面添加一个元素

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
vector<int> vi;
for(int i=;i<;i++)
{
vi.push_back(i);
}
for(int i=;i<;i++)
{
cout<<vi[i]<<' ';
}
return ;
}

2)pop_back()

vector<int> vi;
for(int i=;i<;i++)
{
vi.push_back(i);
}
//0,1,2
vi.pop_back();//0,1
for(int i=;i<vi.size();i++)
{
cout<<vi[i]<<' ';//0,1
}

3)size()

vector<int> vi;
int size=vi.size();//返回当前元素数目

4)clear()

vector<int> vi;
for(int i=;i<;i++)
vi.push_back(i);//依次加入0,1,2,3,4
vi.clear();//清空所有元素,size=0

5)insert()

vector<int> vi;
for(int i=;i<;i++)
{
vi.push_back(i);
}
vi.insert(vi.begin()+,-);//-1插入vi[2]的位置

6)erase()

vector<int> vi;
vi.erase(vi.beigin()+);//删除单个元素,删除vi[3]
vi.erase(vi.beigin()+,vi.begin()+);//删除多个元素,删除【first,end】之间的所有元素

vector简单常用用法的更多相关文章

  1. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  2. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  3. 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  4. C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法

    每次忘记都去查,真难啊 /* C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 */ /* vector常用用法 */ //头文件 #i ...

  5. 【C++】从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  6. centos的vi常用用法

    centos的vi常用用法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  7. C++线性序列容器<vector>简单总结

    C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除 ...

  8. C# Linq基本常用用法

    1.什么是Linq? Lanaguage Interated Query(语言集成查询),Linq 是集成C# 和VB这些语言中用于提供数据查询能力的一个新特性. 这里只介绍两种基本常用用法. 学习方 ...

  9. 由jtable浅谈vector<vector<Object>>的用法(转自a718515028的专栏)

    以前只用过vector<Object>  ,但是在做从数据库导出数据放到jtable中时,发现还有个vector<vector<Object>>的用法. 先说jta ...

随机推荐

  1. P1065 作业调度方案——小模怡情,大模伤身

    P1065 作业调度方案 一个有点费手的“小”%%拟: 题都差点没读明白……: 每个机器所能完成的工序是不一样的: 每个物品完成工序的机器是指定的: 按照题面说的按时间轴推下去就行了: 没有时间上界有 ...

  2. 有没有一个工具可以帮助查找python的bug和进行静态的代码分析?

    答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告 Pylint是另外一个工具可以进行codingstandard检查

  3. JavaScript 判断是否为空

    // var a = ""; // var a = " "; // var a = null; // var a = undefined; // var a = ...

  4. iOS UILabel镂空特效

    http://stackoverflow.com/questions/18716751/drawing-a-path-with-subtracted-text-using-core-graphics ...

  5. SSM框架的配置Spring+Springmvc +Mybatis

    ssm框架是由spring mvc +spring+mybatis组成 快速阅读 通过spring的配置文件spring.xml,在servlet中指定spring mvc的配置文件spring-mv ...

  6. 基于Python的GMSSL实现

    基于Python的GMSSL实现 团队任务 一.小组讨论对课程设计任务的理解 基于Python的GMSSL实现,即GmSSL开源加密包的python实现,支持其SM2/SM3/SM4等国密(国家商用密 ...

  7. git补充(命令)转自https://github.com/Wasdns/github-example-repo

    在使用命令行进行提交时,通常使用git commit -m '注释信息'来填写commit注释信息,但是-m参数适合单行注释,对于多行的commit注释来说是不合适的.这里推荐使用git commit ...

  8. java定时案例

    好久没写笔记了,变懒了! java定时运行的三个案例: 一, 通过sleep方法来达到定时任务的效果 public class testTime { public static void main(S ...

  9. 服务挂后Dump日志

    JAVA_HOME=/usr/java OUTPUT_HOME=~/output DEPLOY_HOME=`dirname $0` HOST_NAME=`hostname` DUMP_PIDS=`ps ...

  10. ubuntu系统开机优化参数

    date : 2019-06-20   14:34:48 author: headsen chen 临时设置: ulimit -n 1000000 永久设置: vim /etc/security/li ...