C++day9

思维导图

 

牛客练习

 练习:

将我们写的 myList 迭代器里面 operator[] 和 operator++ 配合异常再写一遍

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;// 该作业要求各位写一个链表
// 所以myList累里面需要一个真正正正的链表template <class T>
class myList{
public:struct Node{T val;Node* next;Node* prev;};class iterator{private:Node* p;public:iterator(Node* p=NULL):p(p){};T& operator*(){return p->val;}bool operator!=(const iterator& r){return p!=r.p;}iterator& operator++(int){p=p->next;return *this;}iterator& operator++(){p=p->next;return *this;}};myList();void push_back(const T& val);myList& operator<<(const T& val);T& operator[](int index);int size();iterator begin();iterator end();
private:Node* head; //真正的链表(链表头头节点)Node* tail; // 链表尾节点int count;
};template <typename T>
typename myList<T>::iterator myList<T>::begin()
{iterator it(head->next);return it;
}template <typename T>
typename myList<T>::iterator myList<T>::end()
{iterator it(tail->next);return it;
}
template <typename T>
myList<T>::myList(){head = new Node;head->next = NULL;head->prev = NULL;tail = head; // 只有头节点的情况下,尾节点即使头节点count = 0;
}template <typename T>
void myList<T>::push_back(const T& val){Node* newnode = new Node;newnode->val = val;newnode->next = NULL;newnode->prev = tail;tail->next = newnode;tail = newnode;count ++;
}template <typename T>
myList<T>& myList<T>::operator<<(const T& val){push_back(val);// return 0return *this;
}template <typename T>
T& myList<T>::operator[](int index){Node* p = head->next;try{for(int i=0;i<index;i++){p = p->next;if(p==head){cout<<"error"<<endl;break;}}throw bad_alloc();}catch(const bad_alloc& e){                                             cerr<<e.what()<<endl;}return p->val;
}template <typename T>
int myList<T>::size(){return count;
}int main(int argc,const char** argv){myList<int> l;l << 1 << 3 << 5 << 7 << 9;myList<int>::iterator it=l.begin();for(it;it!=l.end();it++){cout<<*it<<"";}cout<<endl;for(auto ele:l){cout<<ele<<"";}cout<<endl;cout<<l[5]<<endl;return 0;
}

实现效果: myList<int> l; l << 1 << 3 << 5 << 7 << 9 总共5个数 如果此时,执行了 l[0 ~ 4] 正常,如果执行了 l[5~n] 自动抛出异常 也就是说,我们需要在 operator[] 函数里面,判断传入的下标是否合法,是否在范围内,如果不合法立刻抛出异常,注意函数内部只负责抛出异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量合并多张 jpg/png 图片为长图或者 PDF 文件,支持按文件夹合并图片

我们经常会碰到需要将多张图片拼成一张图片的场景&#xff0c;比如将多张图片拼成九宫格图片&#xff0c;或者将多张图片拼成一张长图。还有可能会碰到需要将多张图片合并成一个完整的 PDF 文件来方便我们进行打印或者传输等操作。那这些将图片合并成一张图片或者一个完整的文档…

程序化广告行业(73/89):买卖双方需求痛点及应对策略深度剖析

程序化广告行业&#xff08;73/89&#xff09;&#xff1a;买卖双方需求痛点及应对策略深度剖析 大家好&#xff01;一直以来&#xff0c;我都热衷于在技术领域探索学习&#xff0c;也深知知识的分享能让我们共同进步。写这篇博客的目的&#xff0c;就是希望能和大家一起深入了…

[随笔] nn.Embedding的前向传播与反向传播

nn.Embedding的前向传播与反向传播 nn.Embedding的前向计算过程 embedding module 的前向过程其实是一个索引&#xff08;查表&#xff09;的过程 表的形式是一个 matrix&#xff08;embedding.weight, learnable parameters&#xff09; matrix.shape: (v, h) v&#xff1a;…

构建实时、融合的湖仓一体数据分析平台:基于 Delta Lake 与 Apache Iceberg

1. 执行摘要 挑战&#xff1a; 传统数据仓库在处理现代数据需求时面临诸多限制&#xff0c;包括高昂的存储和计算成本、处理海量多样化数据的能力不足、以及数据从产生到可供分析的端到端延迟过高。同时&#xff0c;虽然数据湖提供了低成本、灵活的存储&#xff0c;但往往缺乏…

Maven error:Could not transfer artifact

问题描述 当项目从私有仓库下载依赖时&#xff0c;Maven 报错&#xff0c;无法从远程仓库下载指定的依赖包&#xff0c;错误信息如下&#xff1a; Could not transfer artifact com.ding.abcd:zabk-java:pom from/to releases (http://192.1122.101/repory/mavenleases/): 此…

Dify 生成提示词的 Prompt

Dify 生成提示词的 Prompt **第1次提示词****第2次提示词****第3次提示词**总结 Dify 生成提示词是&#xff0c;会和LLM进行3次交互&#xff0c;下面是和LLM进行交互是的Prompt。 以下是每次提示词的概要、目标总结以及原始Prompt&#xff1a; 第1次提示词 概要&#xff1a; …

sqli-labs靶场 less4

文章目录 sqli-labs靶场less 4 联合注入 sqli-labs靶场 每道题都从以下模板讲解&#xff0c;并且每个步骤都有图片&#xff0c;清晰明了&#xff0c;便于复盘。 sql注入的基本步骤 注入点注入类型 字符型&#xff1a;判断闭合方式 &#xff08;‘、"、’、“”&#xf…

【什么是动态链接?这里的动态是什么意思?链接了什么?】

动态链接&#xff08;Dynamic Linking&#xff09;详解 1. 什么是动态链接&#xff1f; 动态链接是 Java 虚拟机&#xff08;JVM&#xff09;在运行时将字节码中的符号引用&#xff08;Symbolic Reference&#xff09;转换为直接引用&#xff08;Direct Reference&#xff09;…

AWS S3深度剖析:云存储的瑞士军刀

1. 引言 在当今数据驱动的世界中,高效、可靠、安全的数据存储解决方案至关重要。Amazon Simple Storage Service (S3)作为AWS生态系统中的核心服务之一,为企业和开发者提供了一个强大而灵活的对象存储平台。本文将全面解析S3的核心特性,帮助读者深入理解如何充分利用这一&q…

【Game】Powerful——Martial Arts Challenge(6)

文章目录 攻略关卡一&#xff08;虎子&#xff09;关卡二关卡三关卡四关卡五关卡六——奇穷 攻略 关卡一&#xff08;虎子&#xff09; 参战选手 出手顺序 关卡二 参战选手 出手顺序 关卡三 参战选手 出手顺序 关卡四 参战选手 出手顺序 关卡五 参战选手 出手顺序 关卡六…

PPIO × UI-TARS:用自然语言操控电脑,AI Agent 的极致体验

Manus的爆火预示着AI 正在从单纯的文本生成和图像识别迈向更复杂的交互场景。字节跳动近期推出的开源项目 UI-TARS Desktop 为我们展示了一种全新的可能性&#xff1a;能够通过自然语言理解和处理来控制计算机界面。这款工具代表了人工智能与人机交互领域的重大突破&#xff0c…

电脑屏保壁纸怎么设置 桌面壁纸设置方法详解

电脑桌面壁纸作为我们每天面对的第一视觉元素&#xff0c;不仅能够彰显个人品味&#xff0c;还能营造舒适的工作或娱乐氛围。电脑桌面壁纸怎么设置呢&#xff1f;下面本文将为大家介绍Windows和macOS两大主流操作系统中设置电脑桌面壁纸的方法&#xff0c;帮助大家快速设置个性…

popupwindow拦截返回点击

目的&#xff1a;弹窗只有点击按钮可以关闭。 前提&#xff1a;弹窗内有输入框 试了网上的一些方法 设置弹窗焦点 setFocusable(false) &#xff08;会导致软键盘无法显示&#xff09;重写 onBackPressed 方法 &#xff08;不会走这里&#xff09;为 popupwindow 设置 onKey…

数学知识——矩阵乘法

使用矩阵快速幂优化递推问题 对于一个递推问题&#xff0c;如递推式的每一项系数都为常数&#xff0c;我们可以使用矩阵快速幂来对算法进行优化。 一般形式为&#xff1a; F n F 1 A n − 1 F_nF_1A^{n-1} Fn​F1​An−1 由于递推式的每一项系数都为常数&#xff0c;因此对…

GitHub 趋势日报 (2025年04月07日)

GitHub 趋势日报 (2025年04月07日) 本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ &#x1f4c8; 今日整体趋势 Top 10 排名项目名称项目描述今日获星语言1microsoft/markitdownPython tool for converting files and office documents to Markdown.⭐ 1039P…

ROS多设备交互

ROS多设备连接同一个Master&#xff1a;ROS Master多设备连接-CSDN博客 在多个PC端连接同一个ROS Master后&#xff0c;接下来就可以实现不同设备之间的话题交流&#xff0c;Master主机端启动不同PC端的功能包等功能了 尽管多个PC端拥有不同的ROS工作空间&#xff0c;但是只要…

基于国内环境 在Ubuntu 上安装 Docker 指南

前言 在容器化技术主导云原生时代的今天&#xff0c;Docker 凭借其轻量化、高移植性和秒级部署能力&#xff0c;已成为开发与运维的必备工具。然而&#xff0c;国内用户在 Ubuntu 系统上安装 Docker 时&#xff0c;常因 ​官方镜像源访问受限、网络延迟高、依赖包安装失败 等问…

数据结构:二叉树(三)·(重点)

二叉树的存储结构 ⼆叉树⼀般可以使⽤两种结构存储&#xff0c;⼀种顺序结构&#xff0c;⼀种链式结构。 顺序结构 顺序结构存储就是使⽤数组来存储&#xff0c;⼀般使⽤数组只适合表⽰完全⼆叉树&#xff0c;因为不是完全⼆叉树会有 空间的浪费&#xff0c;完全⼆叉树更适合…

EasyExcel实现图片导出功能(记录)

背景&#xff1a;在旧系统的基础上&#xff0c;导出一些工单信息时&#xff0c;现需要新添加处理人的签名或者签章&#xff0c;这就涉及图片的上传、下载、写入等几个操作。 1、EasyExcel工具类 &#xff08;1&#xff09;支持下拉框的导出。 import com.alibaba.excel.Easy…

Android Material Design 3 主题配色终极指南:XML 与 Compose 全解析

最小必要颜色配置 <!-- res/values/themes.xml --> <style name"Theme.MyApp" parent"Theme.Material3.DayNight"><!-- 基础三原色 --><item name"colorPrimary">color/purple_500</item><item name"col…