1.反向迭代器实现思路
一.反向迭代器大致实现#pragma once templateclass Iterator struct ReverseIterator { ReverseIterator(Iterator it) :_it(it) {} Iterator _it; };二.重载一系列操作符#pragma once templateclass Iterator,class Ref,class Ptr struct ReverseIterator { typedef ReverseIteratorIterator,Ref,Ptr Self; ReverseIterator(Iterator it) :_it(it) {} Ref operator*() { return *_it; } Ptr operator-() { return (*_it); } Self operator() { --_it; return *this; } Self operator--() { _it; return *this; } bool operator!(const Self it) { return _it ! it._it; } bool operator(const Self it) { return _it it._it; } Iterator _it; };三.构造一个list的反向迭代器然后就能实现我们的rbegin()和rend()了1.rbegin()的实现reverse_iterator rbegin() { return reverse_iterator(--end()); }2.rend()的实现reverse_iterator rend() { return reverse_iterator(end()); }3.测试void test_list7() { ltw::Listint lt; lt.push_back(1); lt.push_back(2); lt.push_back(3); lt.push_back(4); ltw::Listint::reverse_iterator rit lt.rbegin(); while (rit ! lt.rend()) { cout *rit ; rit; } cout endl; }上面这个是库里面的实现(但是,我们发现这不就错了吗)这里纯粹是为了对称,所以这样实现四.和库里面实现的一样#pragma once templateclass Iterator,class Ref,class Ptr struct ReverseIterator { typedef ReverseIteratorIterator,Ref,Ptr Self; ReverseIterator(Iterator it) :_it(it) {} Ref operator*() { Iterator tmp _it; return *(--tmp); } Ptr operator-() { return (operator*()); } Self operator() { --_it; return *this; } Self operator--() { _it; return *this; } bool operator!(const Self it) { return _it ! it._it; } bool operator(const Self it) { return _it it._it; } Iterator _it; };这样,我们的list里面也要进行修改reverse_iterator rbegin() { return reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); }const版本是一样的const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }vector也是和list是一样的,这里就不进行写了

相关新闻

OpenClaw入门篇

OpenClaw入门篇

前言 OpenClaw(昵称“龙虾”)是一个开源、可私有化部署的 AI 助手平台,它最大的魅力在于 “技能”体系——你可以像给手机安装 App 一样,给 AI 装上各种功能,让它从一个只会聊天的机器人,变成一个真正能帮你…

2026/7/4 19:48:42 阅读更多 →
sse哈工大C语言编程练习37

sse哈工大C语言编程练习37

sse 哈工大 C 语言编程练习 37(3 月 9 日) 收获: 数字的ASCII 码的大小与数字的大小一致。1. 计算整数的位数(Q466) 题目描述: 程序:计算整数中数字的位数。 输入格式要求: "%d…

2026/7/5 9:02:50 阅读更多 →
OpenClaw 安装一月后,我终于明白了这 5 个真相

OpenClaw 安装一月后,我终于明白了这 5 个真相

230K GitHub Stars 背后,有多少人是真在用,有多少人在假装拥抱 AI?开篇:一个让我脸红的数据 上个月,我在一个 500 人的 OpenClaw 交流群里做了个匿名调查: “你现在的 OpenClaw 还在每天运行吗?…

2026/5/17 10:20:06 阅读更多 →

最新新闻

深度学习在高光谱解混中的混合架构设计与实现

深度学习在高光谱解混中的混合架构设计与实现

1. 项目背景与核心挑战高光谱解混(Hyperspectral Unmixing, HU)是遥感图像处理中的关键任务,其核心目标是从混合像素中分离出纯净的端元光谱及其对应丰度。传统方法主要依赖线性混合模型(LMM)或几何学假设,…

2026/7/5 11:29:24 阅读更多 →
slam_toolbox 建图漂移实战:3个关键参数调优,解决长廊地图重叠问题

slam_toolbox 建图漂移实战:3个关键参数调优,解决长廊地图重叠问题

SLAM Toolbox 建图漂移实战:3个关键参数调优解决长廊地图重叠问题1. 长廊环境下的SLAM特殊挑战在机器人自主导航领域,长廊结构(如办公走廊、地下通道、医院过道)始终是SLAM算法面临的最严峻挑战之一。这类环境通常具有以下特征&am…

2026/7/5 11:29:24 阅读更多 →
基于云API构建课堂人脸分析系统:从人脸检测到行为分析的工程实践

基于云API构建课堂人脸分析系统:从人脸检测到行为分析的工程实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 想象一下,你是一名负责智慧教室项目的开发者。产品经理拿着一个需求过来:“我们需要一个系统,能自…

2026/7/5 11:29:24 阅读更多 →
3分钟掌握TrollInstallerX:iOS设备安装TrollStore的最快方法

3分钟掌握TrollInstallerX:iOS设备安装TrollStore的最快方法

3分钟掌握TrollInstallerX:iOS设备安装TrollStore的最快方法 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS设备设计的革命性…

2026/7/5 11:29:24 阅读更多 →
基于改进ResNet的智能垃圾分类系统设计与优化

基于改进ResNet的智能垃圾分类系统设计与优化

1. 项目背景与核心价值垃圾分类作为城市管理的痛点问题,传统人工分拣存在效率低(每小时处理约200-300件)、误判率高(约15%-20%)和人力成本攀升(一线城市单岗年成本超8万元)三大难题。我们实验室…

2026/7/5 11:27:23 阅读更多 →
AI Agent Skills开发实战:代码审查与CI/CD集成

AI Agent Skills开发实战:代码审查与CI/CD集成

1. 项目概述:AI Agent Skills在开发中的实战价值第一次在项目中引入Agent Skills时,我正面临着一个典型的技术困境:团队需要处理大量重复性代码审查工作,但人工检查既耗时又容易遗漏细节。当时偶然发现Anthropic开源的Agent Skill…

2026/7/5 11:25:23 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻