JAVA vector的遍历_谈谈vector容器的三种遍历方法

说明:本文仅供学习交流。转载请标明出处。欢迎转载!

vector容器是最简单的顺序容器,其用法相似于数组。实际上vector的底层实现就是採用动态数组。在编敲代码的过程中。经常会变量容器中的元素,那么怎样遍历这些元素呢?本文给出三种遍历方法。

方法一:採用下标遍历

由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们能够採用相似于数组的方式来訪问vector容器内部的元素,详细代码例如以下:

#include

#include

using namespace std;

typedef vector vInt;

void print_vec1(const vInt & v)//方法一,採用下标訪问

{

int i;

for(i=0;i

{

cout<

}

cout<

}

方法二:採用迭代器遍历

我们都知道,数组和指针有着天然的练习。

假设我们将vector容器看成一个数组,那么我们也能够将迭代器看出一个指针。实际上迭代器的内部实现就是对一个原生指针的封装。迭代器本身就是一个智能指针。以下给出採用迭代器遍历的代码:

#include

#include

using namespace std;

typedef vector vInt;

void print_vec2(const vInt &v)//方法二,採用迭代器訪问

{

vInt::const_iterator iter=v.begin();//注意须要用const_iterator,由于容器是const类型

while(iter!=v.end())

{

cout<

}

cout<

}

方法三:利用copy函数遍历

在泛型算法中,提供了一个复制函数copy,copy的函数原型大致为:copy(b,e,b1),作用是将迭代器范围[b,e)内的元素拷贝到以迭代器b1開始的位置。设想,假设我们将b1设置为一个输出流迭代器ostream_iterator。那么我们就把内容拷贝到输出流cout,相当于显示除了全部元素。详细代码例如以下:

#include

#include

#include//用到几种迭代器

#include//用到几个泛型算法

using namespace std;

typedef vector vInt;

void print_vec3(const vInt &v)//方法三,将容器的内容拷贝到cout绑定的迭代器

{

copy(v.begin(),v.end(),ostream_iterator(cout," ") );

cout<

}

以下我们给出主函数下的測试代码:

int main()

{

vInt v;

int i;

for(i=0;i<10;i++)

{

v.push_back(i);

}

print_vec1(v);//输出 0 1 2 3 4 5 6 7 8 9

print_vec2(v);//输出 0 1 2 3 4 5 6 7 8 9

print_vec3(v);//输出 0 1 2 3 4 5 6 7 8 9

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ ftp服务端_FTP客户端软件介绍及使用

FTP客户端软件介绍及使用 客户端软件&#xff1a; ftp&#xff0c;lftp&#xff0c;lftpget&#xff0c;wget&#xff0c;curl ftp -A ftpserver port -A 主动模式 –p 被动模式 lftp –u username ftpserver lftp usernameftpserver lftpget ftp://ftpserver/pub/file gftp&am…

java中怎么使用json数据_JAVA中使用JSON进行数据传递

1.是不是只有xml传递数据的技术才是webservice&#xff1f;可以这么理解。webservice是基于SOAP协议&#xff0c;SOAP协议是基于XML的文本协议。所以webservice可以简单理解为是基于XML的传输技术&#xff0c;好比HTML是基于文本的传输协议。2.servlet是服务端的java程序的统称…

java 限制参数类型_java定义受限制的类型参数操作

有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如&#xff0c;对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型参数的用途。受限制参数类型的方法示例要声明有界类型参数&#xff0c;请列出类型参数的名称&#xff0c;后跟extends关键字…

安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

软件/资料获取方式在文末正文&#xff1a;前几天发哥预告了一下LOL手游上线的事&#xff0c;本来以为国服也会同步上线&#xff0c;结果也是意料之中的跳票了&#xff0c;让我不禁想起当年玩魔兽世界时国服万年的TBC&#xff0c;不过据说LOL推迟上线是怕影响王者荣耀5周年庆典&…

java版本lstm_LSTM java 实现

由于实验室事情缘故&#xff0c;需要将Python写的神经网络转成Java版本的&#xff0c;但是python中的numpy等啥包也不知道在Java里面对应的是什么工具&#xff0c;所以索性直接寻找一个现成可用的Java神经网络框架&#xff0c;于是就找到了JOONE&#xff0c;JOONE是一个神经网络…

easy excel date 类型解析报错_ptarchiver原理解析

pt-archiver原理解析作为MySQL DBA&#xff0c;可以说应该没有不知道pt-archiver了&#xff0c;作为pt-toolkit套件中的重要成员&#xff0c;往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表&#xff0c;业务仅仅只需要存放最近3个月的流水数据&#xff0c;三个月前…

python中np没有定义_python中的np.empty_python – np.empty,np.zeros和np.one

我很好奇它使用np.empty而不是np.zeros实际上有多大差异,还有关于np.ones的差异.我运行这个小脚本来测试每个创建一个大型数组所需的时间&#xff1a;import numpy as npfrom timeit import timeitN 10_000_000dtypes [np.int8, np.int16, np.int32, np.int64,np.uint8, np.u…

设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略

笔记本电脑现如今在我们的生活中出镜率如此之高&#xff0c;不论是学生党查阅资料还是上班族的忙碌办公&#xff0c;抑或是电竞爱好者的游戏体验&#xff0c;都要依靠笔记本电脑来完成&#xff0c;但对于它的选购方法你了解多少&#xff1f;一千个人就有一千种不同的标准&#…

java s1_转!!Java 基础面试题的剖析: short s1=1;s1 = s1 +1 报错? s1+=1 呢

package common;public class ShortTypeTest {/** param args*/public static void main(String[] args) {// TODO Auto-generated method stubshort s1 1; s1 (short) (s1 1);//简单类型short s21; s2 1;//复合类型,复合赋值操作符,System.out.println(s1";"s2);…

python内循环只执行一次_如何1分钟内从3600只股种选出黑马股,仅分享这一次(太透彻了)...

“1234”操盘定理中&#xff0c;1是指如何持牛股&#xff0c;2是指观念要正确&#xff0c;3是指看破十个现象&#xff0c;4是指抓热点。具体讲解下选股步骤盘后我们怎么去快速选出超短线需要密切关注的票呢?其实选股方法少说也有几千种&#xff0c;我想没有人统计过&#xff0…

java 运行时类型_Java基础之RTTI 运行时类型识别

运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制&#xff0c;在Java运行时&#xff0c;RTTI维护类的相关信息。多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。Class类Class类是"类的类"(class of classes)。如果…

指定的服务已经标记为删除_你的电话号码被标记过吗?你知道这件事情还能赚钱吗?...

今天闲来无事和大家唠唠赚钱的小副业。“电话标记”&#xff0c;我被这事困惑了很多年&#xff0c;最近解决了&#xff0c;同时还发现&#xff0c;这个信息差能挣钱&#xff0c;文末还给到方法&#xff0c;执行力强的伙伴原样照做&#xff0c;0成本&#xff0c;马上开搞&#x…

mplab x ide 中文使用手册_SCI必备利器:翻译又快又准,强推这款超牛X的神器!...

随手转发给好友和朋友圈 编辑&#xff1a;科研小通再分享一款翻译神器&#xff0c;不用调用Google服务器&#xff0c;速度超快。实时翻译&#xff0c;服务器速度杠杠的。今天给大家安利一款超牛X的翻译神器&#xff1a;Mate Translate。官网首页https://gikken.co/mate-transla…

python流行趋势_Python流行度再创新高,学Python就从风变编程开始

10月初&#xff0c;全球编程语言社区TIOBE公布了2020年10月编程语言排行榜&#xff0c;排名情况相较前几个月变化不大&#xff0c;前十名分别为C、Java、Python、C 、C#、Visual Basic、JavaScript 、PHP、R和SQL。其中&#xff0c;Python继续稳居第三&#xff0c;且其受欢迎度…

8086汇编4位bcd码_238期中4头3尾,排列五第19239期爱我彩规

爱我彩规专业研究(七星彩、排列五) 前四位的铁码与定位规&#xff0c;有幸开通爱我彩规公众号&#xff0c;努力为大家提供稳定的号码参考。作者微信号awc1125。 逢星期二和星期天不在彩码课堂公众号转发&#xff0c;因星期二和星期天每日八篇巳排满&#xff0c;只发爱我彩规公…

python通过链接下载文件-如何使用Python通过HTTP下载文件?

import urllib urllib.urlretrieve ("http://www.example.com/songs/mp3.mp3", "mp3.mp3") (用于Python 3)import urllib.request和urllib.request.urlretrieve) 还有一个有“进度栏”的import urllib2 url "http://download.thinkbroadband.com/10M…

centos6.5 编译安装mysql_Centos6.5编译安装mysql 5.7.14详细教程

此文实例给亲们分享了CENTOS6.5 编译mysql 5.7.14安装配置方法&#xff0c;供大家参考&#xff0c;具体内容如下mysql5.7.14 编译安装在自定义文件路径下下载安装包配置安装环境编译安装cmake\-DCMAKE_INSTALL_PREFIX/data/db5714 \-DMYSQL_DATADIR/data/db5714/var \-DMYSQL_U…

时间插件只能选择整点和半点_我花一小时自制了三款PPT插件,不仅免费分享,还想手把手教你制作...

更准确的说&#xff0c;三顿花一小时给PPT里这个天天和你见面的功能区做了一次彻底的整容&#xff1a;我精简了好多根本用不到的功能&#xff0c;还添加了一大波可以让你效率翻倍的一键操作&#xff0c;比如一键拆分文字&#xff0c;一键美化图表等等。这样的改头换面操作起来一…

c主线程如何等待子线程结束 linux_使用互斥量进行同步 - Linux C进程与多线程入门_Linux编程_Linux公社-Linux系统门户网站...

互斥简单地理解就是&#xff0c;一个线程进入工作区后&#xff0c;如果有其他线程想要进入工作区&#xff0c;它就会进入等待状态&#xff0c;要等待工作区内的线程结束后才可以进入。基本函数(1) pthread_mutex_init函数原型&#xff1a;int pthread_mutex_init ( pthread_mut…

电脑声音太小如何增强_感觉手机音量太小了?教你这样设置,声音立马大上许多...

不管是打电话&#xff0c;还是看电视&#xff0c;如果觉得手机的声音太小了&#xff0c;总会感到听起来很吃力&#xff0c;那么我们遇到这种情况&#xff0c;可以怎么办呢&#xff1f;建议大家看看下面这个方法&#xff0c;或许会让你的手机音量瞬间变大。1、打开单声道音频如今…