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

C++(20):自定义类型实现基于范围的for循环

C++自定义类型,可以通过实现begin和end作为成员函数,来支持基于范围的for循环

#include <iostream>class D{
public:int* begin(){return m_data;}int* end(){return m_data + 5;}
private:int m_data[5]{1, 2, 3, 4, 5};
};int main()
{D d;for (int i : d){std::cout << i << std::endl;}return 0;
}

运行程序输出:

1

2

3

4

5

 C++20允许将begin和end做为非成员函数实现以支持基于范围的for循环:

#include <iostream>class D{
public:int m_data[5]{1, 2, 3, 4, 5};
};int* begin(D& d)
{return d.m_data;
}
int* end(D& d)
{return d.m_data + 5;
}int main()
{D d;for (int i : d){std::cout << i << std::endl;}return 0;
}

运行程序输出:

1

2

3

4

5

相关文章:

C++(20):自定义类型实现基于范围的for循环

C自定义类型&#xff0c;可以通过实现begin和end作为成员函数&#xff0c;来支持基于范围的for循环 #include <iostream>class D{ public:int* begin(){return m_data;}int* end(){return m_data 5;} private:int m_data[5]{1, 2, 3, 4, 5}; };int main() {D d;for (in…...

Linux常用命令:find、grep、vim、cat、less、more

目录 我的常用搜索命令 find 命令 grep 命令 vim 常用命令&#xff1a; 1.光标移动命令 2插入命令 3.删除命令 4.复制和粘贴命令 5.撤销和重做命令 6.查找和替换命令 7.文件操作命令 8.其他命令 cat命令 less 命令 more 命令 less和more命令的区别 less和vim命…...

Oracle导入,注意事项

在执行导入时&#xff0c;如果导入的触发器引用的表不存在&#xff0c;可能会导致错误。触发器通常会在相关的表结构之后导入&#xff0c;但在导入阶段&#xff0c;表的创建并不一定会立即执行。 在 Oracle 数据库中&#xff0c;触发器的创建可能涉及到对表的引用&#xff0c;…...

【数据结构】入队序列出队序列问题(以21年408真题举例)

题型说明 一般是一个队列&#xff0c;其中一边可以入队&#xff0c;另一边可以入队和出队只可入队的含义是从这个方向是以队列形式存在可以入队和出队表示此边以堆形式存在 怎么分析&#xff1f; 以21年408真题举例 考点分析 出队序列存在两种情况&#xff1a;入之后就出&…...

在ant构建脚本中调用maven的命令

有时候想用maven管理依赖&#xff0c;用ant构建。 在ant的build.xml文件中可以使用exec这个task来调用系统命令&#xff0c;也就可以调用maven的命令。 例如&#xff0c;执行maven的命令mvn dependency:copy-dependencies&#xff0c;可以将项目的依赖提取出来&#xff0c;放…...

美格智能5G RedCap模组顺利完成中国联通5G物联网OPENLAB开放实验室认证

近日&#xff0c;美格智能5G RedCap模组SRM813Q顺利通过中国联通5G物联网OPENLAB开放实验室端到端的测试验收&#xff0c;并获得OPENLAB实验室的认证证书。这标志着该模组产品各项性能均已符合RedCap商用标准&#xff0c;为5G RedCap规模商用奠定了坚实基础。 中国联通5G物联网…...

Git基础知识学习常用命令一

常用命令 $ git status 工作区域与仓库保持一致step2: 暂存状态 $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ git add xx/xx.py xx/xx2.py # 添加某几个文件Step3: commit $ git commit -m"<这里写commit的描述>" 已提…...

【2023.11.6】OpenAI发布会——近期chatgpt被攻击,不能使用

OpenAI发布会 写在最前面发布会内容GPT-4 Turbo 具有 128K 上下文函数调用更新改进了指令遵循和 JSON 模式可重现的输出和对数概率更新了 GPT-3.5 Turbo 助手 API、检索和代码解释器API 中的新模式GPT-4 Turbo 带视觉DALLE 3文字转语音 &#xff08;TTS&#xff09;收听语音样本…...

云原生 黑马Kubernetes教程(K8S教程)笔记——kubernetes介绍。Master集群控制节点、Node工作负载节点、Pod控制单元

参考文章&#xff1a;kubernetes介绍 文章目录 1. Kubernetes介绍1.1 应用部署方式演变传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上虚拟化部署&#xff1a;可以在一台物理机上运行多个虚拟机&#xff0c;每个虚拟机都是独立的一个环境&#xff…...

[护网杯 2018]easy_tornado 1(两种解法!)

题目环境&#xff1a;发现有三个txt文本文件 /flag.txt/welcome.txt/hints.txt 依此点开 flag在/fllllllllllllag文件中 在hints.txt文件中发现md5计算 md5(cookie_secretmd5(filename)) 并且三个文件中都存在filehash&#xff08;文件名被哈希算法加密32位小写&#xff09; 猜…...

冒泡排序(Bubble Sort)

目录 1.冒泡排序1.1 基本原理1.2 例子1.3 示例代码 2.魔炮排序2.1 基本原理2.1 例子2.2 示例代码 1.冒泡排序 1.1 基本原理 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法。它重复地遍历待排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的…...

JVM源码剖析之软、弱、虚引用的处理细节

目录 写在前面&#xff1a; 源码剖析&#xff1a; Java层面&#xff1a; JVM层面&#xff1a; 使用危险点&#xff1a; 总结&#xff1a; 版本信息&#xff1a; jdk版本&#xff1a;jdk8u40 垃圾回收器&#xff1a;Serial new/old 写在前面&#xff1a; 不同的垃圾回收…...

Linux服务器上搭建JupyterNotebook教程

搭建需知 1.确保是Linux服务器&#xff1b; 2.已经在linux服务器上安装好anaconda3&#xff1b; 搭建教程 请按照顺序依次执行下面的命令&#xff1a; 1、安装Jupyter Notebook 执行以下命令&#xff0c;安装jupyter notebook conda install jupyter【注】 如果anaconda3…...

记录bug1

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 例如&#xff1a;项目场景&#xff1a;示例:通过蓝牙芯片(HC-05)与手机 APP 通信&#xff0c;每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1…...

【MySQL】rank()、row_number()、dense_rank()用法详解

建表测试 测试表数据&#xff1a;test1 CREATE DATABASE /*!32312 IF NOT EXISTS*/db_test /*!40100 DEFAULT CHARACTER SET utf8 */; USE db_test; /*Table structure for table test1 */ DROP TABLE IF EXISTS test1; CREATE TABLE test1 ( id int(10) NOT NULL, score i…...

NFT合约部署

部署合约&#xff1a; 1.web3 NFT合约部署工具 https://remix.ethereum.org/ 2.tron NFT合约部署工具 https://www.tronide.io/ 3.部署 web3 ERC721代码&#xff1a; // SPDX-License-Identifier: MIT pragma solidity ^0.8.2;import "openzeppelin/contracts/token/ERC7…...

【C++】从入门到精通第三弹——友元函数与静态类成员

这里写目录标题 静态类成员友元友元方法 静态类成员 类成员一般都需要通过对象来访问&#xff0c;不可以通过类名直接访问&#xff0c;但是当我们将类成员定义为静态类成员&#xff0c;则允许使用类名直接访问。 静态类成员是在类成员前定义static关键字。 1 #include<iost…...

acwing算法基础之搜索与图论--floyd算法

目录 1 基础知识2 模板3 工程化 1 基础知识 floyd算法的时间复杂度为O(n^3)&#xff0c;它用来解决多源最短路问题。它的原理是基于动态规划。 floyd算法的关键步骤&#xff1a; k从1到n。i从1到n。j从1到n&#xff0c;d[i][j] min(d[i][j], d[i][k] d[k][j])。经过上述三…...

Zabbix监控SSL证书有效期

一、介绍 由于业务需要&#xff0c;最近通过 Let’s Encrypt 申请了一些 SSL 证书&#xff0c;而证书有效期为 3 个月&#xff0c;需要在证书到期之前 renew。由于域名较多经常忘记 renew&#xff0c;导致证书过期&#xff0c;因此想通过 Zabbix 的方式监控证书的到期时间&…...

Arduino OneButton按键处理库实现单击/双击/长按功能

Arduino OneButton按键处理库实现单击/双击长按功能 ✨在Arduino开发平台下&#xff0c;按键的单击/双击/长按功能&#xff0c;在通过使用OneButton库&#xff0c;很容易就可以轻松实现。这就是支持C/C模块化设计的好处&#xff0c;避免重复性开发的工作。 &#x1f516;本文将…...

NXP MPXHZ6250A压力传感器嵌入式驱动库解析

1. OSS-EC_NXP_MPXHZ6250A_00000057 压力传感器驱动库深度解析NXP MPXHZ6250A 是一款高精度、集成信号调理电路的硅压阻式绝对压力传感器&#xff0c;广泛应用于汽车进气歧管压力&#xff08;MAP&#xff09;、工业过程控制、医疗呼吸设备及环境监测等对稳定性与温漂抑制要求严…...

Ubuntu系统中Xmind8的安装与Java环境配置指南(实测可行)

1. 为什么选择Xmind8&#xff1f; 作为一个用了五年思维导图工具的老用户&#xff0c;我尝试过市面上几乎所有主流产品。在Ubuntu系统下&#xff0c;Xmind8依然是平衡性最好的选择——功能完善、运行稳定&#xff0c;而且对中文支持极佳。最新版Xmind虽然界面更现代&#xff0c…...

工业大模型≠智能工厂!SITS2026曝光的12个AI原生落地陷阱,第9个正在吞噬你的技改预算

第一章&#xff1a;工业大模型≠智能工厂&#xff1a;SITS2026核心认知纠偏 2026奇点智能技术大会(https://ml-summit.org) 工业大模型在制造场景中的泛化能力常被误读为“开箱即用的智能工厂解决方案”&#xff0c;但SITS2026实证研究表明&#xff1a;大模型本身不具备设备控…...

营销自动化数据驱动 - 多源数据 OLAP 架构演进轿

1. 流图&#xff1a;数据的河流 如果把传统的堆叠面积图想象成一块块整齐堆叠的积木&#xff0c;那么流图就像一条蜿蜒流淌的河流&#xff0c;河道的宽窄变化自然流畅&#xff0c;波峰波谷过渡平滑。 它特别适合展示多个类别数据随时间的变化趋势&#xff0c;尤其是当你想强调整…...

一文搞懂:如何用 Spring AI 搭建 MCP Server 和 Client

MCP 概述 Model Context Protocol&#xff08;MCP&#xff09; 是一套标准化协议&#xff0c;用于实现 AI 模型与外部工具或资源的交互。它提供一致的接口&#xff0c;使 AI 模型能够访问数据库、API、文件系统及其他外部服务&#xff0c;同时支持多种传输机制&#xff0c;满足…...

KDE桌面Mac化实战:从Launchpad到全局菜单的完整改造指南

1. 为什么要把KDE桌面改造成macOS风格&#xff1f; 作为一个长期使用Linux的老用户&#xff0c;我完全理解大家对macOS那种简洁优雅界面的向往。但说实话&#xff0c;macOS的封闭性总是让人感觉束手束脚。直到有一天我发现&#xff0c;原来用KDE Plasma可以完美复刻macOS的视觉…...

告别命令行恐惧:用SmartGit可视化搞定Git分支与合并冲突

告别命令行恐惧&#xff1a;用SmartGit可视化搞定Git分支与合并冲突 在团队协作开发中&#xff0c;Git分支管理和合并冲突是每个开发者都无法回避的挑战。传统的命令行操作虽然强大&#xff0c;但对于许多开发者来说&#xff0c;复杂的命令和晦涩的错误信息常常让人望而生畏。…...

GeoPort代码实现原理:Flask框架与iOS设备通信机制解析

GeoPort代码实现原理&#xff1a;Flask框架与iOS设备通信机制解析 【免费下载链接】GeoPort GeoPort: Your Location, Anywhere! The iOS location simulator 项目地址: https://gitcode.com/gh_mirrors/ge/GeoPort GeoPort作为一款强大的iOS位置模拟器&#xff0c;其核…...

Maxwell电机多目标尺寸优化:基于Ansys Maxwell与OptiSlang的内嵌式永...

Maxwell电机多目标尺寸优化 Ansys Maxwell 和OptiSlang 有案例电机&#xff0c;永磁同步电机内嵌式 满足电机多尺寸参数入手&#xff0c;满足多尺寸联动优化&#xff0c;最终达到多参数优化效果 提供源文件&#xff0c;提供操作视频概述 本文档旨在详细阐述一套基于 Ansys Maxw…...

汉鼎建设:用技术解码高端制造的“洁净密码”

在东莞这座“世界工厂”&#xff0c;从精密电子到新能源电池&#xff0c;无数高端制造企业的生产线&#xff0c;都藏在一个个“比手术室还干净”的净化车间里。而广东汉鼎建设集团&#xff0c;正是这些车间背后的“隐形建造者”——作为总部位于东莞东城、拥有装修与机电双一级…...