iterator在vector中的使用

article/2025/9/19 8:26:54

iterator在vector中的使用

iterator也被称为迭代器,可以指向一个范围内(如queue、vector、set等等)的元素,与指针类似。迭代器分为五个不同的类别,输入、输出、向前、双向、随机访问。
在vector中的迭代器属于随机访问迭代器。
使用时需要注意,一个长度为5的vector对象,它的end指向的元素相当于字符串中的‘\0’,是一个无效的元素,需要进行-1操作,才是真实的指向元素尾的迭代器。

	vector<int> a;for(int i = 1; i < 6; i++)a.push_back(i);int size;size = a.size();cout<<"The vector's length is "<<size<<endl;vector<int>::iterator iter = a.end();cout<<*iter<<endl;

在这里,我们调试可以看到*iter的值为-1163005939
迭代器的值
输出是0.
而当我们让iter减1时,它指向的就是数组尾的元素。

int main(void)
{//d迭代器的使用vector<int> a;for(int i = 1; i < 6; i++)a.push_back(i);int size;size = a.size();cout<<"The vector's length is "<<size<<endl;vector<int>::iterator iter = a.end();cout<<*iter<<endl;iter = iter - 1;cout<<*iter<<endl;

这里*iter的值为5.
下面是有关vector的其他运算

int main(void)
{//d迭代器的使用vector<int> a;for(int i = 1; i < 6; i++)a.push_back(i);int size;size = a.size();cout<<"The vector's length is "<<size<<endl;vector<int>::iterator iter = a.end();cout<<*iter<<endl;iter = iter - 1;cout<<*iter<<endl;iter = iter - 1;cout<<*iter<<endl;iter = iter + 2;cout<<*iter<<endl;iter = iter - 1;cout<<*iter<<endl;

运行截图如下所示
在这里插入图片描述
我们可以看到,迭代器指向是有一定范围限制的,当超出范围时就会为随机数,使用时需要注意。
当然,通过官方文档得知,迭代器除了允许进行算符运算(++,–)之外,也可以进行判断,取值,赋值(如将vector的begin,end赋值给迭代器),随机访问的支持像数组一样的通过下标取值的操作(例如a[n])。


http://chatgpt.dhexx.cn/article/OymHsapn.shtml

相关文章

Java中Iterator用法整理

迭代器&#xff08;Iterator&#xff09; 迭代器是一种设计模式&#xff0c;它是一个对象&#xff0c;它可以遍历并选择序列中的对象&#xff0c;而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象&#xff0c;因为创建它的代价小。 Java中的Iterator功能…

c++ 的map、iterator用法

https://blog.csdn.net/bangdingshouji/article/details/73028424 参考&#xff1a; 资料一&#xff1a;http://www.cplusplus.com/reference/iterator/&#xff08;第一参考&#xff0c;简单精要&#xff09;资料二&#xff1a;http://jjhou.boolan.com/programmer-3-traits…

Iterator用法

Interator迭代集合&#xff0c;可以进行remove操作。 public class Test {public static void main(String[] args) {List<String> lists new ArrayList<>();lists.add("Sam");lists.add("Tom");lists.add("David");lists.add(&qu…

Java迭代器(Iterator)的用法

Java迭代器&#xff08;Iterator&#xff09;的用法 什么是IteratorIterator的应用 什么是Iterator Iterator(迭代器)&#xff0c;它是一种用于访问集合的方法&#xff0c;可用于迭代 ArrayList 和 HashSet 等集合(或者也可以说成&#xff0c;遍历并选择序列中的对象)。 Iter…

浅谈MySQL数据库的设计流程

系列文章目录 本次文章的内容是记录有关于MySQL学习中对数据库设计流程的一个记录和在设计流程中需要注意的一些事情。 文章目录 系列文章目录前言一、数据库设计1.1为什么要着重于对数据库的详细设计1.2数据库的设计流程&#xff08;1&#xff09;根据应用系统的功能&#xf…

数据库设计说明书

目录 1引言 1.1编写目的 1.2背景 1.3定义 1.4参考资料 2外部设计 2.1标识符和状态 2.2使用它的程序 2.3约定 2.4专门指导 2.5支持软件 3结构设计 3.1概念结构设计 3.2逻辑结构设计 3.3物理结构设计 4运用设计 4.1数据字典设计 4.2安全保密设计 数据库设计说明…

MySQL之数据库设计六个步骤

前言 今天有个前同事去面试&#xff0c;被面试官问了一个这样的问题&#xff1a;如果让你去设计数据库你改怎么设计&#xff1f;或者有哪些步骤&#xff1f;被问到这里可能我们就懵逼了&#xff0c;是啊&#xff0c;该怎么去设计呢。 在软件开发的过程中&#xff0c;数据库设…

用mysql设计数据库的步骤_数据库设计的主要步骤是什么

数据库设计的主要步骤是什么 发布时间&#xff1a;2020-08-12 10:00:24 来源&#xff1a;亿速云 阅读&#xff1a;141 作者&#xff1a;小新 这篇文章给大家分享的是有关数据库设计的主要步骤是什么的内容。小编觉得挺实用的&#xff0c;因此分享给大家做个参考。一起跟随小编过…

关系数据库设计步骤

看这篇文章之前&#xff0c;希望大家能够对数据库系统、数据模型有知识储备&#xff0c;如果有疑惑可以看我的另外一篇博客数据库系统。 还需要对关系型数据库基础知识有所了解&#xff0c;有疑惑朋友可以看关系型数据库基础知识 文章目录 数据库设计的步骤概念结构设计E-R模型…

数据库设计步骤(超级详细)|数据库

数据库设计 我们先来看这样一个问题 假如遇到下面这样的设计需求&#xff0c;我们如何完成数据库的设计呢&#xff1f; 设计需求&#xff1a; 假设商品经销商有基本实体集&#xff1a;供应商Vendors、产品目录Products、顾客信息Customers和顾客订单Orders。 各个实体的属性集…

nginx跨域|配置nginx跨域详解

在项目的nginx配置目录中&#xff0c;添加如下命令即可解决跨域问题&#xff0c;亲测有效。 # $http_origin动态获取请求客户端请求的域 不用*的原因是带cookie的请求不支持*号 add_header Access-Control-Allow-Origin $http_origin; # 表示请求头的字段 动态获取 add_head…

nginx跨域配置步骤

假设接口服务器地址&#xff1a;http://192.168.2.1:8081 1、先查看接口本身是否能调通&#xff08;随便找个get接口在浏览器测试下&#xff0c;如&#xff1a;http://192.168.2.1:8081/testmanage/test/deleteTest&#xff09; 2、找到nginx的压缩目录&#xff0c;修改conf/…

Nginx跨域配置详解

一、概念 Ningx,是轻量级、开源的web服务器&#xff0c;具有高性能的HTTP和反向代理服务器&#xff0c;同时也是一个IMAP/POP3/SMTP代理服务器。 优势&#xff1a; 以事件驱动的方式编写&#xff0c;使其具有高并发高性能可扩展性好热部署 应用场景 静态资源服务&#xff0…

CORS解决跨域问题(Nginx跨域配置)

背景&#xff1a; 同域&#xff1a;域名&#xff08;父域名和子域名都相同&#xff09;&#xff0c;端口&#xff0c;协议都相同 跨域&#xff1a;非同域的请求 问题&#xff1a; 浏览器上&#xff0c;我们访问127.0.0.1:80&#xff0c;但是127.0.0.1:80 会去请求127.0.0.1:…

Nginx配置反向代理解决跨域问题

通过Nginx配置反向代理结果跨域问题 第一步&#xff1a;下载Nginx 一、下载 官网下载地址&#xff1a;http://nginx.org/en/download.html 我下载的版本&#xff1a;http://nginx.org/download/nginx-1.15.2.zip &#xff08;我也是参考网上的步骤&#xff0c;所以下载的不是…

Nginx配置跨域及解析

一、代码 先放上nginx配置代码 # 以代理百度地图api为例location /mymap/ {proxy_pass http://api.map.baidu.com/;# 配置跨域代理 add_header Access-Control-Allow-Origin $http_origin;add_header Access-Control-Allow-Methods GET,POST,OPTIONS…

nginx配置详解,nginx跨域问题

文章目录 前言更改hosts文件新增velocityerp.top.conf配置文件nginx配置header参数&#xff08;解决跨域&#xff09;,接口方配置nginx反向代理(解决跨域)&#xff0c;发送方配置nginx端口转发&#xff08;解决跨域&#xff09;nginx内部跳转nginx配置优先级详解 前言 本文介绍…

nginx 配置支持跨域

在nginx.conf文件内&#xff0c;server中加入以下内容 #允许跨域请求的域&#xff0c;*代表所有 add_header Access-Control-Allow-Origin *; #允许带上cookie请求 add_header Access-Control-Allow-Credentials true; #允许请求的方法&#xff0c;比如 GET/POST/PUT/DELETE a…

通过Nginx来解决跨域问题

Nginx跨域实现 首先大家要搞清楚什么是跨域&#xff0c;为什么会有跨域情况的出现。哪些情况属于跨域&#xff1f; 跨域&#xff1a;由于浏览器的同源策略&#xff0c;即属于不同域的页面之间不能相互访问各自的页面内容 注&#xff1a;同源策略&#xff0c;单说来就是同协议&a…