当前位置: 首页 > news >正文

网站改版解决方案/媒体宣传推广方案

网站改版解决方案,媒体宣传推广方案,网站估值怎么做,家在深圳房网论坛首页STL迭代器的应用 迭代器的定义方法: 类型作用定义方式正向迭代器正序遍历STL容器容器类名::iterator 迭代器名常量正向迭代器以只读方式正序遍历STL容器容器类名::const_iterator 迭代器名反向迭代器逆序遍历STL容器容器类名::reverse_iterator 迭代器名常量反向迭…

STL迭代器的应用

STL迭代器分类

  • 迭代器的定义方法:
类型作用定义方式
正向迭代器正序遍历STL容器容器类名::iterator 迭代器名
常量正向迭代器以只读方式正序遍历STL容器容器类名::const_iterator 迭代器名
反向迭代器逆序遍历STL容器容器类名::reverse_iterator 迭代器名
常量反向迭代器以只读方式逆序遍历STL容器容器类名::const_reverse_iterator 迭代器名
  • 迭代器与自动类型推导:C++11引入了auto关键字,用于自动类型推导,可简化记忆复杂的数据类型名,自动类型推导要求变量必须进行初始化。语法为auto 变量名=值

  • 迭代器本身不支持输入和输出,因此不能像指针一样输出查看其地址。

  • 在对迭代器所指向的元素进行操作时,必须像指针一样,对迭代器进行解引用操作,即*迭代器名。若对迭代器指向的元素进行修改,则与指针一样,其实际的值也会被修改。

  • 特殊位置的迭代器:

    • 类名.begin():正向迭代器,指向容器正向上首个位置的迭代器
      类名.cbegin():常量正向迭代器,其余与begin相同
    • 类名.end():正向迭代器,指向容器正向上末个位置的下一个位置的迭代器
      类名.cend():常量正向迭代器,其余与end相同
    • 类名.rbegin():反向迭代器,指向容器反向上首个位置的迭代器
      类名.crbegin():常量反向迭代器,其余与rbegin相同
    • 类名.rend():反向迭代器,指向容器反向上末个位置的下一个位置的迭代器
      类名.crend():常量反向迭代器,其余与rend相同
      STL特殊位置迭代器
  • 迭代器与指针一样,支持算数运算。迭代器的算数运算具有方向性:在进行算数运算时,运算方向沿着迭代器的方向。
    如正向迭代器进行++时,为沿着正向进行++,即移动到当前迭代器的下一个位置;反向迭代器进行++时,为沿着反向进行++,相对于正向而言,实际是移动到了当前的前一个位置。
    迭代器运算方向

  • 获取迭代器的位置:使用std::distance(迭代器1,迭代器2),为迭代器2-迭代器1。

  • 基于范围的for循环:C++11引入了基于范围的for循环,用于更简便的正序遍历容器(包括C数组),但不支持逆序遍历容器。在基于范围的for循环中,循环变量就是元素本身,无需再进行解引用操作。若需要在基于范围的for循环中对元素进行修改,可与引用进行配合使用。循环头的语法为:

    for (auto element : container) {//element直接表示容器中的每一个元素,无需再进行解引用。container既可以为STL序列容器,也可以是C数组
    }
    for (auto &element : container) {//element表示容器中的每一个元素的引用,通过修改引用可直接修改容器内元素
    }
    

迭代器应用实例

此处仅为说明迭代器作用而举例,实际上vector的I/O方法并不止这些。

一维vector的正序输入、正序输出

  • 手动定义迭代器
vector<int>v(10);
for(v::iterator i=v.begin();i!=v.end();i++)cin>>*i;//注意必须解引用迭代器,否则会报错。对迭代器指向的元素进行操作,元素实际值会改变
for(v::iterator i=v.begin();i!=v.end();i++) cout<<*i;
  • 自动类型推导定义的迭代器
vector<int>v(10);
for(auto i=v.begin();i!=v.end();i++) cin>>*i;
for(auto i=v.begin();i!=v.end();i++) cout<<*i;
  • 基于范围的for循环
vector<int>v(10);
for(auto &i:v){cin>>i;
}
for(auto i:v){cout<<i;
}
  • 基于范围的for循环(C数组)
int a[10];
for(auto &i:a){cin>>i;
}
for(auto i:a){cout<<i;
}

一维vector的逆序输入、逆序输出

  • 手动定义迭代器
vector<int>v(10);
for(v::iterator i=v.rbegin();i!=v.rend();i++)cin>>*i;//注意必须解引用迭代器,否则会报错。对迭代器指向的元素进行操作,元素实际值会改变
for(v::iterator i=v.rbegin();i!=v.rend();i++) cout<<*i;
  • 自动类型推导定义的迭代器
vector<int>v(10);
for(auto i=v.rbegin();i!=v.rend();i++) cin>>*i;
for(auto i=v.rbegin();i!=v.rend();i++) cout<<*i;

二维vector的正序输入、正序输出

  • 手动定义迭代器
vector<vector<int>>v(3,vector<int>(3));
for(vector<vector<int>>::iterator j=v.begin();j!=v.end();j++)for(vector<int>::iterator i=j->begin();i!=j->end();i++)cin>>*i;
for(vector<vector<int>>::iterator j=v.begin();j!=v.end();j++)for(vector<int>::iterator i=j->begin();i!=j->end();i++)cout<<*i;
  • 自动类型推导的迭代器
vector<vector<int>>v(3,vector<int>(3));
for(auto j=v.begin();j!=v.end();j++)for(auto i=j->begin();i!=j->end();i++)cin>>*i;
vector<vector<int>>v(3,vector<int>(3));
for(auto j=v.begin();j!=v.end();j++)for(auto i=j->begin();i!=j->end();i++)cout<<*i;
  • 基于范围的for循环
vector<vector<int>>v(3,vector<int>(3));
for(auto &j:v)for(auto &i:j)cin>>i;
for(auto j:v)for(auto i:v)cout<<i;
  • 基于范围的for循环(C数组)
int a[3][3];
for(auto &j:a)for(auto &i:j)cin>>i;
for(auto &j:a)for(auto i:j)cout<<i;

相关文章:

STL迭代器的基础应用

STL迭代器的应用 迭代器的定义方法&#xff1a; 类型作用定义方式正向迭代器正序遍历STL容器容器类名::iterator 迭代器名常量正向迭代器以只读方式正序遍历STL容器容器类名::const_iterator 迭代器名反向迭代器逆序遍历STL容器容器类名::reverse_iterator 迭代器名常量反向迭…...

【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃

目录 前言 DELETE语句的基础使用 删除指定记录 清空表与删除表数据的区别 注意 前言 在数据库管理的日常工作中&#xff0c;数据的删除是一项需要格外小心的操作&#xff0c;因为一旦数据被删除&#xff0c;往往难以恢复。数据操作语言(DML)中的DELETE语句&am…...

异步复制,主库宕机后,数据可能丢失吗?

异步复制是数据库复制的一种方式&#xff0c;它允许主数据库&#xff08;主库&#xff09;在不等待从数据库&#xff08;从库&#xff09;完成数据同步的情况下继续处理事务。这种方式可以提高数据库的性能&#xff0c;因为主库不需要等待数据复制到从库。然而&#xff0c;异步…...

如何在Spring Boot中优雅处理异常

如何在Spring Boot中优雅处理异常 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在Spring Boot应用程序中如何优雅地处理异常&#xff0c;以…...

1.3.数据的表示

定点数 原码 最高位是符号位&#xff0c;0表示正号&#xff0c;1表示负号&#xff0c;其余的n-1位表示数值的绝对值。 数值0的原码表示有两种形式&#xff1a; [0]原0 0000000 [-0]原1 0000000 例&#xff1a;1010 最高位为1表示这是一个负数&#xff0c; 其它三位 010…...

【进阶篇-Day4:使用JAVA编写石头迷阵游戏】

目录 1、绘制界面2、打乱石头方块3、移动业务4、游戏判定胜利5、统计步数6、重新游戏7、完整代码&#xff1a; 1、绘制界面 上述思路是&#xff1a;使用一个二维数组存放图片的编号&#xff0c;然后在后持遍历即可获取对应的图片。 代码如下&#xff1a; package com.itheima.s…...

探索 LLamaWorker:基于LLamaSharp的.NET本地大模型服务

LLamaWorker 是一个基于 LLamaSharp 项目开发的 HTTP API 服务器。它提供与 OpenAI 兼容的 API&#xff0c;使得开发者可以轻松地将大型语言模型&#xff08;LLM&#xff09;集成到自己的应用程序中。 1. 背景 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xf…...

Qt开发 | Qt控件 | QTabWidget基本用法 | QListWidget应用详解 | QScrollArea应用详解

文章目录 一、QTabWidget基本用法二、QListWidget应用详解1.列表模式1.1 基本操作1.2 添加自定义item1.3 如何添加右键菜单1.4 QListWidget如何删除item 2.图标模式 三、QScrollArea应用详解 一、QTabWidget基本用法 QTabWidget 是 Qt 框架中的一个类&#xff0c;它提供了一个选…...

2023年 AI APT可持续攻击的调查研究报告

总览 随着网络技术的不断发展&#xff0c;网络安全威胁也日益严峻。高级持续性威胁&#xff08;APT&#xff09;攻击以其目标明确、手段多样、隐蔽性强等特点&#xff0c;成为网络安全领域的重要挑战。本文分析2023年当前 APT 攻击的主要特点、活跃组织、攻击趋势以及漏洞利用…...

Leetcode 102.目标和

给定一个正整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之前添加 ‘-’ &…...

LLM AI工具和Delphi名称的起源

LLM AI工具和Delphi名称的起源 使用ChatGPT&#xff0c;直接或通过微软工具&#xff0c;以及其他基于llm的引擎。我很欣赏他们提供好的总结和比较的能力&#xff0c;并且还编写了一些样板代码。与此同时&#xff0c;当你问一些重要的问题时&#xff0c;你会得到一些令人惊讶的好…...

打破数据分析壁垒:SPSS复习必备(十一)

一、方差分析 方差分析的应用条件如下&#xff1a; &#xff08;1&#xff09;独立&#xff0c;各组数据相互独立&#xff0c;互不相关&#xff1b; &#xff08;2&#xff09;正态&#xff1a;即各组数据符合正态分布&#xff1b; &#xff08;3&#xff09;方差齐性&…...

【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction

在 Qt 框架中&#xff0c;QMenu 类用于创建和管理菜单。菜单是用户界面的一部分&#xff0c;可以包含多个选项或动作&#xff0c;用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单&#xff08;右键菜单&#xff09;或工具栏中。 基本用法 创建菜单对象…...

华为DCN技术:M-LAG

M-LAG&#xff08;Multichassis Link Aggregation Group&#xff09;即跨设备链路聚合组&#xff0c;是一种实现跨设备链路聚合的机制。M-LAG主要应用于普通以太网络、VXLAN和IP网络的双归接入&#xff0c;可以起到负载分担或备份保护的作用。相较于另一种常见的可靠性接入技术…...

k8s持久化之emptyDir使用

目录 概述实践代码 概述 理解emptyDir使用&#xff0c;是后续k8s持久化进阶&#xff0c;高阶使用的基础。 实践 代码 详细说明在代码中 # 缓存数据&#xff0c;可以让多个容器共享数据 # 删除 Pod 时&#xff0c;emptyDir 数据同步消失 # 定义 initContainer -> 下载数据…...

Java露营基地预约小程序预约下单系统源码

轻松开启户外探险之旅 &#x1f31f; 露营热潮来袭&#xff0c;你准备好了吗&#xff1f; 随着人们对户外生活的热爱日益增加&#xff0c;露营已成为许多人周末和假期的首选活动。但你是否曾因找不到合适的露营基地而烦恼&#xff1f;或是因为繁琐的预约流程而错失心仪的营地…...

七天速通javaSE:第四天 java方法

文章目录 前言一、什么是方法&#xff1f;二、方法的定义与调用1. 方法的定义2. 方法的调用3. 练习&#xff1a;定义比大小方法并调用 三、方法的重载四、递归五、可变参数拓展&#xff1a;命令行传递参数 前言 本章将学习java方法。 一、什么是方法&#xff1f; java方法是用…...

jupyter notebook的markdown语法不起作用

在这个界面编辑&#xff0c;发现markdown你编辑的是什么就是什么&#xff0c;不起作用&#xff0c;然而点一下&#xff1a; 右上角“Notebook转发”&#xff0c;就会单独跳出一个jupyter notebook的界面&#xff0c;此时就会奏效&#xff1a;...

Redis 学习笔记(2)

目录 1 Redis的持久化1.1 RDB持久化方案1.2 AOF持久化方案 2 Redis架构2.1 主从复制架构2.2 哨兵集群设计2.3 哨兵集群设计 3 Redis事务机制4 Redis过期策略与内存淘汰机制4.1 过期策略4.2 内存淘汰机制 5 Redis高频面试题4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩 1 Redis的持久化…...

快慢指针:删除有序数组中的重复项

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 思路好想&#xff0c;代码实现不好想 class Solution {public int removeDuplicates(int[] nums) {int fast 1,slow 1;while(fast < nums.length){if(nums[fast] ! nums[fast-1]){nums[slow] nums[fast]…...

用户登录错误次数太多锁定账号

当用户登录验证码错误次数太多时&#xff0c;需要限制用户在10分钟之内不能再次登录。 限制方案&#xff1a; 1.通过Redis ZSet key可以设置为用户名&#xff0c;value可以设置为UUID&#xff0c;score设置为当前时间戳 每次用户登录时&#xff0c;通过 rangeByScore 查询对…...

tedsign vue3 web-端框架中封装一个验证码组件 以及对应node 接口逻辑说明

一个这样的组件 我直接上代码了 <template><t-loading size"small" :loading"loading" show-overlay><div class"container" click"refresh"><div v-if"svg" class"svg" v-html"svg&…...

探索Scala并发编程之巅:高效并行处理的艺术

标题&#xff1a;探索Scala并发编程之巅&#xff1a;高效并行处理的艺术 引言 在现代软件开发中&#xff0c;随着多核处理器的普及&#xff0c;编写能够充分利用硬件能力的并发程序变得至关重要。Scala&#xff0c;这门结合了面向对象和函数式编程特性的语言&#xff0c;提供…...

AudioLM: 音频生成的革命性模型

AudioLM: 音频生成的革命性模型 AudioLM是一种革命性的音频生成模型&#xff0c;它结合了深度学习和自然语言处理的先进技术&#xff0c;能够生成高质量、逼真的音频内容。本文将探讨AudioLM的基本原理、工作机制、应用场景以及对音频生成领域的影响和未来发展方向。 一、Aud…...

C++ Vector的模拟实现

vector的介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而…...

Kubernetes之Controller详解

本文尝试从Kubernetes Controller的种类、交互逻辑、最佳实践、伪代码示例及历史演进5个方面对其进行详细阐述&#xff0c;希望对您有所帮助&#xff01; 一、Kubernetes Controller种类 Kubernetes Controller Manager 是 Kubernetes 集群的核心组件之一&#xff0c;负责管理…...

openlayers性能优化——开启图层预加载、减少空白等待时间

使用切片图层时、地图拖拽会有空白图片&#xff0c;为了减少空白等待时间&#xff0c;我们可以开始图层预加载。 const map_top new Map({layers: [new TileLayer({preload:Infinity, //预加载source: new StadiaMaps({layer: "outdoors",}),}),],target: "ma…...

BlockingQueue详解(含动画演示)

目录 BlockingQueue详解0、BlockingQueue简介BlockingQueue接口中方法注释BlockingQueue的实现&#xff0c;总结计划 1、ArrayBlockingQueue简介2、ArrayBlockingQueue的继承体系3、ArrayBlockingQueue的构造方法①、 ArrayBlockingQueue(int capacity)②、ArrayBlockingQueue(…...

wordpress商用付费主题与免费主题的区别

WordPress免费主题与WordPress付费主题&#xff0c;都可以用&#xff0c;但存在非常大的差别。从直观的感受&#xff0c;简单地说就是&#xff0c;WordPress免费主题能用&#xff0c;WordPress付费主题好用。如果涉及到其它的方面&#xff0c;WordPress商用付费主题与免费主题之…...

【ARM Trace32(劳特巴赫) 使用介绍 2.7 -- bat 脚本传参数给 trace32 cmm 脚本】

请阅读【Trace32 ARM 专栏导读】 文章目录 bat 脚本传参数给 trace32脚本可变参数传入CMM 脚本接收参数运行BAT脚本bat 脚本传参数给 trace32脚本 在使用 Trace32 的过程中,如果每次都是通过GUI 界面来操作,是习惯使用命令行工作的人所不能忍受的!!!,那么能不同通过脚本…...