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. IDEA正确设置编码统一为UTF-8

    之前代码在myeclispe10跑得好好的来这个intellij idea 就一直出错 改了好久的编码都没卵用,如下设置才正确.还有idea的web工程目录和myeclispe的目录是不一样的,神坑. ...

  2. 一个类中域(field)的首字母不要大写

    首先这种写法不规范, 其次,至少在AJAX交互的情况下, 如果首字母大写,会无法与前端相同名称的JSON属性相绑定. 如 data:{'Name':'2017-10-19'} public NameI ...

  3. Python3 内置http.client,urllib.request及三方库requests发送请求对比

    如有任何学习问题,可以添加作者微信:lockingfree 更多学习资料请加QQ群: 822601020获取 HTTP,GET请求,无参 GET http://httpbin.org/get Pyth ...

  4. GO 类型断言

    在Go语言中,我们可以使用type switch语句查询接口变量的真实数据类型,语法如下: switch x.(type) { // cases } x必须是接口类型. 来看一个详细的示例: type ...

  5. Qt实现原生Flow实现不了的Item错误排列效果,类似淘宝商品展示

    main.qml import QtQuick 2.12 import QtQuick.Window 2.12 import QtQml.Models 2.12 Window { visible: t ...

  6. Kettle中ETL的效率优化

    ETL效率优化 开启数据库日志记录及性能监控 如果我们想要优化一个ETL(KTR或者KJB)的性能,我们首先需要知道的就是它的瓶颈在哪里.而这些信息一般只能在ETL运行的步骤度量中看到,并且是不会持久 ...

  7. 二维背包---P1855 榨取kkksc03

    P1855 榨取kkksc03 题解 二维背包板子题 f[ i ][ j ] 前 n 个物品,花费金钱不超过 i ,花费时间不超过 j 的最大价值 如果每个物品只能选一次,那么就相当于在01背包上多加 ...

  8. linux内核是如何支持深度睡眠(deep sleep)方式的?

    1. 硬件架构 arm64 2. 内核版本 4.19 3. 分析相关函数 setup_arch() -> psci_dt_init() -> psci_0_2_init() -> g ...

  9. new Handler()和new Handler(Looper.getMainLooper())的区别是什么?

    new Handler()和new Handler(Looper.getMainLooper())的区别是什么?     一.Handler的一些知识,new Handler()和new Handle ...

  10. python分布式进程(windows下)

    分布式进程: 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上. Py ...