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. create an oauth app

    github可以对自己的服务进行oauth认证,创建oauth认证的方式如下: github -> Settings -> Developer settings -> Develop ...

  2. Redis学习(一) —— 基本使用与原理

    一.数据结构 string Redis字符串是可修改字符串,在内存中以字节数组形式存在. 下面是string在源码中的定义,SDS(Simple Dynamic String) struct SDS& ...

  3. 如何实现数组与List的相互转换

    List转数组:toArray(arraylist.size()方法 数组转List:Arrays的asList(a)方法 List<String> arrayList = new Arr ...

  4. RK3399 focaltech敦泰触摸屏移植调试

    CPU:RK3399 系统:Android 7.1 IC:FT5406 focaltech(敦泰)触摸屏也是比较常用的,但是相对汇顶,就比较少用 RK的源码中虽然有 focaltech 的代码,但没有 ...

  5. pytorch基础学习(二)

    在神经网络训练时,还涉及到一些tricks,如网络权重的初始化方法,优化器种类(权重更新),图片预处理等,继续填坑. 1. 神经网络初始化(Network Initialization ) 1.1 初 ...

  6. CardView 简介和使用

    CardView 简介 本文链接:https://blog.csdn.net/ShawnXiaFei/article/details/81568537CardView 是 Google 官方发布 MD ...

  7. pycharm 中文乱码

    新机的pycharm首次输出中文竟然在控制台报错了,着实让我头疼了一下午   我用的PyCharm是2018.3版本 在调用os.system()的过程中遇到了控制台中文乱码的问题,具体如下 找到对应 ...

  8. 011-多线程-JUC集合-Queue-PriorityBlockingQueue和DelayQueue

    一.PriorityBlockingQueue简介 PriorityBlockingQueue是一个支持优先级的无界阻塞队列.默认情况下元素采用自然顺序升序排列.也可以自定义类实现compareTo( ...

  9. python使用datetime模块计算各种时间间隔的方法

    python使用datetime模块计算各种时间间隔的方法 本文实例讲述了python使用datetime模块计算各种时间间隔的方法.分享给大家供大家参考.具体分析如下: python中通过datet ...

  10. Hive之insert into与insert overwrite区别

    一.实践先行,直接上手 1. hive 表及数据准备 建表,并插入初始数据.向表中插入 hive> use test; hive> create table kwang_test (id ...