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

c++:遍历vector容器的5种方法 1.迭代器 2.C++11 新增关键字auto 3.数组遍历法 4.基于范围的for循环 #include <vector> #include <iostream> using namespace std; int main() { vector<int>obj; for(int i=0;i<10;i++) { obj.push_back(i); cout<<obj[i]<&lt 阅读详情

         vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组。在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法。

       方法一:采用下标遍历

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

[cpp]  view plain  copy
  1. #include<iostream>  
  2. #include<vector>  
  3. using namespace std;  
  4. typedef vector<int> vInt;  
  5. void print_vec1(const vInt & v)//方法一,采用下标访问  
  6. {  
  7.     int i;  
  8.     for(i=0;i<v.size();i++)  
  9.     {  
  10.         cout<<v[i]<<" ";  
  11.     }  
  12.     cout<<endl;  
  13. }  

       方法二:采用迭代器遍历

       我们都知道,数组和指针有着天然的练习。如果我们将vector容器看成一个数组,那么我们也可以将迭代器看出一个指针,实际上迭代器的内部实现就是对一个原生指针的封装,迭代器本身就是一个智能指针。下面给出采用迭代器遍历的代码:

[cpp]  view plain  copy
  1. #include<iostream>  
  2. #include<vector>  
  3. using namespace std;  
  4.   
  5. typedef vector<int> vInt;  
  6. void print_vec2(const vInt &v)//方法二,采用迭代器访问  
  7. {  
  8.     vInt::const_iterator iter=v.begin();//注意需要用const_iterator,因为容器是const类型  
  9.     while(iter!=v.end())  
  10.     {  
  11.         cout<<*iter++<<" ";  
  12.     }  
  13.     cout<<endl;  
  14. }  

        方法三:利用copy函数遍历

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

[cpp]  view plain  copy
  1. #include<iostream>  
  2. #include<vector>  
  3. #include<iterator>//用到几种迭代器  
  4. #include<algorithm>//用到几个泛型算法  
  5. using namespace std;  
  6. typedef vector<int> vInt;  
  7. void print_vec3(const vInt &v)//方法三,将容器的内容复制到cout绑定的迭代器  
  8. {  
  9.     copy(v.begin(),v.end(),ostream_iterator<int>(cout," ") );  
  10.     cout<<endl;  
  11. }  

        下面我们给出主函数下的测试代码:

 

[cpp]  view plain  copy
  1. int main()  
  2. {  
  3.     vInt v;  
  4.     int i;  
  5.     for(i=0;i<10;i++)  
  6.     {  
  7.         v.push_back(i);  
  8.     }  
  9.     print_vec1(v);//输出 0 1 2 3 4 5 6 7 8 9  
  10.     print_vec2(v);//输出 0 1 2 3 4 5 6 7 8 9  
  11.     print_vec3(v);//输出 0 1 2 3 4 5 6 7 8 9  
  12.     return 0;  
  13. }  
vector容器遍历数据的三种方法 #include<iostream> #include <vector> #include<algorithm> using namespace std; void prin(int val) { cout << val << endl; } int main(){ vector<int> v; /... 阅读详情

相关推荐

C++之vector中元素的N种遍历

随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。

胡杨 1万+

vector容器的三种遍历方法

STL(Standard Template Library)中vector容器是最常见的容器之一,设计中经常需要遍历vector容器,本文介绍三种常用的vector遍历方式。 一、下标索引遍历                 vector容器底层其实是动态数组的包装,因此在其内部重载了[]运算符。 函数原型如下: 因此可以采用访问数组元素的类似方式访问vector内部的元素。 示例代

decode 6万+

Cocos Creator 3D音频定位实战:从原理到沉浸感实现

3D音频定位是游戏开发中实现沉浸感的关键技术,其核心原理基于HRTF(头部相关传输函数)模型,模拟声音在空间中的传播与双耳感知差异。这项技术通过赋予声音空间坐标、距离衰减和方向属性,将音频从背景元素提升为可交互的环境线索,极大增强了虚拟世界的真实感与玩家的空间认知。在工程实践中,开发者需要深入理解声源、听者、衰减曲线与多普勒效应等基础概念,并合理运用音频池、优先级管理与动态混音等技术手段来平衡效果与性能。对于Cocos Creator开发者而言,无论是使用引擎原生的AudioSource组件构建轻量级方案,

weixin_30972263的博客 294

[C++]vector遍历的4种方法

【代码】[C++]vector遍历的4种方法。

FL1768317420的博客 6126

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

保姆级教程:用微信小程序+OneNet MQTT API,5分钟搞定温湿度数据实时展示

本文提供了一份详细的教程,教你如何利用微信小程序和OneNet MQTT API在5分钟内实现温湿度数据的实时展示。从OneNet平台配置到小程序数据绑定,手把手指导零基础开发者快速搭建监控系统,涵盖API调用、数据解析和界面设计等关键步骤。

weixin_30298497的博客 370

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

说明:本文仅供学习交流。转载请标明出处。欢迎转载!vector容器是最简单的顺序容器,其用法相似于数组。实际上vector的底层实现就是採用动态数组。在编敲代码的过程中。经常会变量容器中的元素,那么怎样遍历这些元素呢?本文给出三种遍历方法。方法一:採用下标遍历由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operato...

weixin_39758696的博客 1943

控制障碍函数(Control Barrier Function,CBF) 二、示例

使用一个经典简单的示例讲解CBF的推导

Lyajpunov的博客 6433

vector容器三种遍历方法

vector容器三种遍历方法 int main() { int tank, bottle_1, bottle_2; tank = 10, bottle_1 = 3, bottle_2 = 7; //cin >> tank >> bottle_1 >> bottle_2; int* p = new int[3]();//10个值初始化为0的int *p = tank; *(p + 1) = bottle_1; *(p + 2) = bottle_2; arr

白菜 989

Simulink/Requirements Toolbox 学习(一):概述

编写、导入、导出需求并使需求正式化;两种创建需求的模块:需求编辑器、需求透视;描述需求的方式:文本、图像和关键字;通过导入和导出需求文件,与第三方需求管理工具(例如 Microsoft Word、Microsoft Excel®、IBM DOORS和 IBM DOORS Next)集成。涉及模块:Requirements Eidtor、Requirements Table等;

856

详细教程:如何使用elasticsearch 8.x进行向量搜索

大模型的热度使得向量数据库和embedding也成了ai领域的热门话题,有别于从头开始训练一个大模型或基于基础模型进行微调的方式,embedding检索相关上下文是对大模型进行定制的各种方法中成本最低、技术实现最便捷的方式。从技术实现的角度,

qq_50790981的博客 1万+

C++ vector容器的swap方法(容器互换)

swap方法可以交换两容器的内容。 int main() { vector<int> v1; v1.push_back(10); v1.push_back(20); vector<int> v2; v2.push_back(30); //printVector是自己编写用于遍历输出vector容器的函数 printVector(v1); printVec...

对的时间点 6万+

第4章 本地一键部署(新手首选)

本文介绍了OpenClaw的本地部署方法,特别适合新手用户。部署过程仅需执行一条命令,通过自动脚本完成安装和配置向导。安装完成后,用户可通过终端TUI或Web控制面板验证部署是否成功。文章还提供了常见问题的排查方法,包括端口占用、权限不足、APIKey无效和安装卡顿等情况。整个部署流程简单直观,无需手动修改配置文件,适合快速搭建使用。

eastyuxiao的专栏 194

STL—vector容器

vector相关知识

hffh123的博客 2114

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5556

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

c++之vector容器遍历方式

vector是定义在C++标准模板库。vector可以理解为是一个能够存放的动态数组,能够增加和删除元素,但是一个容器中的对象必须是同一种类型。1、vector为它们的元素使用,也就意味着可以通过指针的偏移量来进行访问某一个元素。2、与其他动态序列容器(队列、链表)相比,向量访问其元素(就像数组一样)非常高效,并且从末尾添加或删除元素的效率相对较高。但对于涉及在以外的位置插入或删除元素的操作,vector的性能相对较差1、由于vector能够,我们不需要考虑内存的增长和释放、具有很好的安全性。

weixin_54096215的博客 4391

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C++的list和vector的三种循环遍历方式

list的三种循环遍历方式 // int的类型 #include <iostream> #include <list> //using namespace std; int main() { //================================================================= std::list<int&...

liuhaobjtu的博客 9537

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【C++】STL容器之vector的使用及遍历

文章目录基本概念使用vector容量和大小vector插入和删除vector数据存取vector互换容器迭代器遍历代码解析(下面有完整代码)第一种遍历方式:第二种遍历方式:第三种遍历方式:完整代码Vector容器嵌套容器 基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 能存放任意数据类型(类,结构,普通变量类型等) 和普通数组一样可以通过下标索引来进行访问 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新空间,

天亮就睡 1644

C++中vector容器的三种遍历方式

【代码】C++中vector容器的三种遍历方式。

qq_63524016的博客 3788

C++ vector容器的多种遍历方式

vector容器的遍历方式 //方式一:普通for循环 //方式二:for auto循环 //方式三:迭代器 //方式四:for_each() //方式五:transform() //方式六:copy()+输出流迭代器

汉阳Hann's Home 1万+

详解vector容器

介绍vector,详解各主要接口的使用,OJ的运用,模拟实现

关注学习C++领域,感谢陪伴,共同进步! 1755
上一篇: c++随机数
下一篇: 朴素贝叶斯分类
青松愉快
博客等级 码龄14年 71粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值