vector简单常用用法
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简单常用用法的更多相关文章
- 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...
- 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
每次忘记都去查,真难啊 /* C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 */ /* vector常用用法 */ //头文件 #i ...
- 【C++】从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- centos的vi常用用法
centos的vi常用用法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...
- C++线性序列容器<vector>简单总结
C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除 ...
- C# Linq基本常用用法
1.什么是Linq? Lanaguage Interated Query(语言集成查询),Linq 是集成C# 和VB这些语言中用于提供数据查询能力的一个新特性. 这里只介绍两种基本常用用法. 学习方 ...
- 由jtable浅谈vector<vector<Object>>的用法(转自a718515028的专栏)
以前只用过vector<Object> ,但是在做从数据库导出数据放到jtable中时,发现还有个vector<vector<Object>>的用法. 先说jta ...
随机推荐
- CPU占用高系统反应慢之问题定位
今天在看到公司群里有关于测试反应测试服务器比较卡,调用调用超时,响应很慢,成功率低的问题,然后想着去处理这个问题. 本着开发的精神,摒弃网管的水平,寻找问题的根源. 主要从如下几个方面入手: 1:查询 ...
- 全国行政区域代码(免费来拿) xls格式 可直接导入
全部区域代码 地址:https://pan.baidu.com/s/1Elz-zW_nLS8YR8GZAn3WRw 提取码:ze3s
- excel被保护或者锁定时候按住alt和enter可以输入换行
excel被保护或者锁定时候按住alt和enter可以输入换行
- 我的BO之数据保护
我的BO 1-我的BO之强类型 2-我的BO之数据保护 3-我的BO之状态控制 4-我的BO之导航属性 数据保护指什么 软件的运行离不开数据,数据一般存在对象中.这种对象在 Java 统称为 POJO ...
- POX flow_stats2.py analysis by uestc_gremount
该程序是POX WIKI上的程序,我只是将统计的报文修改了以下,并做了对这个程序运行流程的分析: 1.程序从launch开始运行 2.监听2个事件,如果监听到"FlowStatsReceiv ...
- bind--dns-docker---[nslookup/dig]
[dig] https://www.cnblogs.com/apexchu/p/6790241.html [dns resolution and revserse ]https://www.cnbl ...
- ArcGIS超级工具SPTOOLS1.7升级说明
ArcGIS超级工具1.7升级说明:多了:5个工具,总87工具. 5.11 数据打包 44 5.11.1. mxd批量打包MPK:对一个文件夹所有MXD打包MPK 5.11.2. mxd文档发 ...
- PHP try catch 如何使用
<?php try { if (file_exists('test_try_catch.php')) { require ('test_try_catch.php'); } else { ...
- uboot的仓库在哪里?
答: https://gitlab.denx.de/u-boot/u-boot# 1. 获取源码 git clone git@gitlab.denx.de:u-boot/u-boot.git Or g ...
- Android 滚动隐藏标题栏 和FAB按钮实现
主页面: package com.loaderman.samplecollect.hideonscroll; import android.content.Intent; import android ...