网站设计作品网站怎么做外链

diannao/2026/1/19 20:22:57/文章来源:
网站设计作品,网站怎么做外链,wordpress 找不到主题,html5 wap网站模板动画目录 前言 list的反向迭代器 list.h文件 ReverseIterator.h文件 test.cpp文件 前言 迭代器按性质分类#xff1a; 单向#xff1a;forward_list双向#xff1a;list随机#xff1a;vector / deque 迭代器按功能分类#xff1a; 正向反向const list的反向迭代器…目录 前言 list的反向迭代器  list.h文件 ReverseIterator.h文件 test.cpp文件 前言 迭代器按性质分类 单向forward_list双向list随机vector / deque 迭代器按功能分类 正向反向const list的反向迭代器  问题反向迭代器和正向迭代器的不同点在哪 答二者功能类似只是和--的方向不一样 基本概念本来每个容器都要写一个反向迭代器的类但是这样太费劲了我们只需要写一个反向迭代器的类模板给编译器传不同的容器的正向迭代器实例化编译器帮助我们实例化出各种容器的对应反向迭代器 list.h文件 #pragma once #includeassert.h #includeReverseIterator.hnamespace bit {templateclass Tstruct ListNode{ListNodeT* _next;ListNodeT* _prev;T _data;ListNode(const T x T()):_next(nullptr), _prev(nullptr), _data(x){}};//正向迭代器的类模板 ///templateclass T, class Ref, class Ptrstruct ListIterator{typedef ListNodeT Node;// typedef ListIteratorT, T, T*// typedef ListIteratorT, const T, const T*typedef ListIteratorT, Ref, Ptr iterator;Node* _node;ListIterator(Node* node):_node(node){}// *it//T operator*()Ref operator*(){return _node-_data;}// it-//T* operator-()Ptr operator-(){return _node-_data;}// ititerator operator(){_node _node-_next;return *this;}iterator operator(int){iterator tmp(*this);_node _node-_next;return tmp;}iterator operator--(){_node _node-_prev;return *this;}iterator operator--(int){iterator tmp(*this);_node _node-_prev;return tmp;}bool operator!(const iterator it){return _node ! it._node;}bool operator(const iterator it){return _node it._node;}};//list类模板 ///templateclass Tclass list{typedef ListNodeT Node;public://容器类typedef ListIteratorT, T, T* iterator;//正向迭代器的类模板typedef ListIteratorT, const T, const T* const_iterator;//const正向迭代器的类模板//容器的正向迭代器类typedef ReverseIteratoriterator, T, T* reverse_iterator;//反向迭代器的类模板typedef ReverseIteratorconst_iterator, const T, const T* const_reverse_iterator;//const反向迭代器的类模板//普通反向迭代器const没写reverse_iterator rbegin(){return reverse_iterator(end());}reverse_iterator rend(){return reverse_iterator(begin());}iterator begin(){return _head-_next;}iterator end(){return _head;}// const迭代器需要是迭代器不能修改还是迭代器指向的内容// 迭代器指向的内容不能修改const iterator不是我们需要const迭代器// T* const p1// const T* p2const_iterator begin() const{return _head-_next;}const_iterator end() const{return _head;}void empty_init(){_head new Node;_head-_next _head;_head-_prev _head;_size 0;}list(){empty_init();}//C11的initializer_listlist(initializer_listT il){empty_init();for (auto e : il){push_back(e);}}// lt2(lt1)list(const listT lt){empty_init();for (auto e : lt){push_back(e);}}// 需要析构一般就需要自己写深拷贝// 不需要析构一般就不需要自己写深拷贝默认浅拷贝就可以void swap(listT lt){std::swap(_head, lt._head);std::swap(_size, lt._size);}// lt1 lt3listT operator(listT lt){swap(lt);return *this;}void clear(){iterator it begin();while (it ! end()){it erase(it);}}~list(){clear();delete _head;_head nullptr;}/*void push_back(const T x){Node* newnode new Node(x);Node* tail _head-_prev;tail-_next newnode;newnode-_prev tail;newnode-_next _head;_head-_prev newnode;}*/void push_back(const T x){insert(end(), x);}void push_front(const T x){insert(begin(), x);}void pop_back(){erase(--end());}void pop_front(){erase(begin());}void insert(iterator pos, const T val){Node* cur pos._node;Node* newnode new Node(val);Node* prev cur-_prev;// prev newnode cur;prev-_next newnode;newnode-_prev prev;newnode-_next cur;cur-_prev newnode;_size;}iterator erase(iterator pos){Node* cur pos._node;Node* prev cur-_prev;Node* next cur-_next;prev-_next next;next-_prev prev;delete cur;_size--;return iterator(next);}size_t size() const{return _size;}bool empty(){return _size 0;}private:Node* _head;size_t _size;}; }ReverseIterator.h文件 #pragma once// 所有容器的反向迭代器 // 迭代器适配器 namespace bit {// vectorT::iterator// listT::iteratortemplateclass Iterator, class Ref, class Ptrstruct ReverseIterator{// typedef ReverseIteratorT, T, T*// typedef ReverseIteratorT, const T, const T*typedef ReverseIteratorIterator, Ref, Ptr rever_iterator;//将反向迭代器的类型重命名为rever_iteratorIterator _it;//定义一个正向迭代器类型的对象并对其进行初始化和封装ReverseIterator(Iterator it)//反向迭代器的对象由正向迭代器的对象初始化:_it(it){}Ref operator*(){Iterator tmp _it;//不改变原迭代器本身的指向只想获取迭代器指向的下一个位置的数据的值return *(--tmp);}Ptr operator-(){return (operator*());//返回该对象地址返回值的类型是Ptr*匿名指针}//和--逻辑与正向迭代器相反//前置rever_iterator operator()//返回类型是一个反向迭代器类类型的引用{--_it;return *this;}//前置--rever_iterator operator--(){_it;return *this;}bool operator!(const rever_iterator s){return _it ! s._it;}}; }test.cpp文件 #includeiostream #includevector #includelist #includealgorithm using namespace std; #includelist.h//list必须放在这list.h中有需要以上头文件的地方不改变其它代码的前提下放在上面几行会报错int main() {bit::listint lt { 1,2,3,4 };bit::listint::reverse_iterator rit lt.rbegin();while (rit ! lt.rend()){cout *rit ;rit;}cout endl;return 0; } lt是一个被多参数实例化的一个list类类型的对象rit是一个反向迭代器类型的对象先调用lt中的rbegin函数该函数又会调用end函数返回一个实例化好的普通正向迭代器类类型的匿名对象然后该匿名对象会作为参数传递给ReverseIterator类模板从而实例化出一个反向迭代器类类型的对象最后返回给rit 调用lt的rend函数经过一系列操作后返回一个反向迭代器类类型的匿名对象rit和该匿名对象一起传入rit的!重载函数中进行比较该函数又会调用二者正向迭代器中的!重载函数最后将比较结果返回*rit会调用rit中的*重载函数生成一个临时的正向迭代器类型的对象tmp_it是由正向迭代初始化的--tmp调用正向迭代器的--重载函数令tmp指向的前一个对象调用tmp的*重载函数返回获取的数据运用临时对象原迭代器指向的对象不变rit调用rit的重载函数先调用_it的--重载函数将_it指向前一个对象并返回更新后的_it最后重载函数返回更新后的_it ~over~

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

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

相关文章

可以查企业备案的网站国外 wordpress 免费空间

ts 枚举类型介绍 TypeScript的枚举类型是一种特殊的数据类型,它允许开发者为一组相关值定义一个共同的名称,使我们可以更清晰、更一致地使用这些值。 枚举类型在TypeScript中用enum关键字定义,每个枚举值默认都是数字类型,从0开…

精准营销软件惠阳网站优化

解法一:树形DP 个人觉得这个方法是比较可能想到的,但是输出方案很恶心 先转换题意:“无论怎样规定叶子的初始点权,都可以通过操作你选择的点来让所有叶子的点权清空”意味着每个叶子节点都可以通过一系列操作单独1、-1 模拟一下…

值得相信的西安网站开发学软件工程好找工作吗

案例演示 图1 1.结构分析 文字部分用<p>标签定义&#xff0c;对于特殊显示的文本&#xff08;如导语、详情&#xff09;等可以用<em>、<strong>等格式化标签来定义&#xff0c;效果图如图2。 图2 2.样式分析 &#xff08;1&#xff09;控制段落文本的字体…

网站开发使用的软件wordpress如何不显示评论

mySql安装完成后&#xff0c;配置链接nodejs项目中的数据库。 1、测试是否安装成功。 2、use nodejs使用nodejs 3、设置数据源 5、exit 转载于:https://www.cnblogs.com/zhxzh/p/9244996.html

建站用什么平台好qq浏览器在线打开网页

现象 忘记充电&#xff0c;电量耗尽关机&#xff0c;开机后时间不对&#xff0c;开启自动对时&#xff0c;时间会变成上个月的一天&#xff0c;系统更新后问题依旧&#xff0c;每次出现问题都需要手动调整。 解决方法验证 删除 /var/db/timed/com.apple.timed.plist删除 /et…

户外网站做招聘网站怎么做市场

1. 概述 本文记录在 Ubuntu 16.04 上将 python 升级为 3.8 版本&#xff0c;并配置为系统默认 python3 的过程。 在 Ubuntu 16.04 中&#xff0c;python3 的默认版本为 3.5&#xff1a; $ python3 -V Python 3.5.2 本文以在 Ubuntu 16.04 中安装为例&#xff0c;方法同样适用于…

女生做网站编辑怎么样宁波建设协会网站首页

如今&#xff0c;跨境电商无疑已经成为了一个热门的创业领域&#xff0c;但对于一些新手来说&#xff0c;面临的一个主要挑战是如何处理产品的货源问题。下面我就和大家分享一下无货源跨境电商的基本概念以及一些新手可以采取的策略和步骤&#xff0c;帮助大家在这个领域取得成…

2016 网站建设需求网站怎么做短信营销

概述 随着科学技术的发展&#xff0c;越来越多的智能可穿戴设备出现在我们的眼前&#xff0c;智能手环&#xff0c;智能眼镜、智能防丢器等&#xff0c;防丢器就可以很方便的给出提醒。 目前防丢器的种类有 蓝牙防丢器GPS防丢器RFID防丢器WIFI防丢器等 本文主要讲解蓝牙防丢…

四川省城乡住房与建设厅网站首页全国做临期进口食品的网站

接上篇再学个比较有用的 Symbol.isConcatSpreadable 这个符号作为一个属性表示“一个布尔值&#xff0c;如果是 true&#xff0c;则意味着对象应 该用 Array.prototype.concat()打平其数组元素”。ES6 中的 Array.prototype.concat()方法会 根 据 接 收 到 的 对 象 类 型 选 择…

大型网站建设推荐网站平台建设成本

在数据结构的世界里&#xff0c;我们会认识各种各样的数据结构&#xff0c;每一种数据结构都能解决相应领域的问题&#xff0c;当然每个数据结构&#xff0c;有他的优点&#xff0c;必然就有它的缺点&#xff0c;那么如何创造一种数据结构来将某两种数据结构进行扬长避短&#…

有哪些大站用wordpress信用体系建设网站维运工作制度

信息打点-公众号服务&Github监控&供应链&网盘泄漏&证书图标邮箱资产 #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CMS指纹…

专业建站报价wordpress表单 慢

点击蓝字关注我们一、通讯录简介实现一个通讯录&#xff1b;通讯录可以用来存储1000个人的信息&#xff0c;每个人的信息包括&#xff1a;姓名、性别、年龄、电话、住址提供方法&#xff1a;添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系…

哈尔滨网站制作案例网站移动端是什么情况

一、我的ubuntu20.04症状描述&#xff1a; 在编辑文字文档的过程中&#xff0c;会不定时的出现鼠标指针随意跳动的情形&#xff0c;严重干扰了做文字编辑、编写代码等工作的进行。先后排除了戴尔笔记本及配件故障、鼠标故障、ubuntu系统中文档编辑软件的故障等可能。 二、原来…

网站模板后台怎么做wordpress哪个版本最好用

一.QPointer QPointer是一个模板类,用于指向QObject或其派生类对象。当QPointer指向的对象销毁时,它会被自动设置为nullptr(在QObject析构时),这和普通C++指针是不同的(普通的C++指针delete后会变为“悬空指针”,需要手动设置为nullptr)。 QPointer的使用场景:QPoint…

给公司做网站的公司邢台市官网

上期回顾&#xff1a;历程[一]描述了基本的树状图的绘制&#xff0c;默认节点类型defaultNode中的type是circle,下面这篇描述的是节点抽离自定义节点并做数据静态渲染。 官网地址&#xff1a;https://g6-next.antv.antgroup.com/manual/introduction 一、案例效果 二、自定义节…

北京做网站建设价格常州 做网站

XML Schema 简介XSD 为何使用XML Schema 是基于 XML 的 DTD 替代者。XML Schema 可描述 XML 文档的结构。XML Schema 语言也可作为 XSD&#xff08;XML Schema Definition&#xff09;来引用。在继续学习之前&#xff0c;您需要对下面的知识有基本的了解&#xff1a;HTML / XHT…

长沙公司网站模板制作方案东莞h5网站制作

离职在即&#xff0c;在准备下一个工作环境的这段时间&#xff0c;忽然有一阵感慨&#xff0c;工作近五年&#xff0c;在这段时间中&#xff0c;体验了两种不同的工作环境&#xff1a;一个规模很大&#xff0c;各种开发体系完备的大公司&#xff0c;另一个&#xff08;也是目前…

免费ppypp网站网站建站 上海

题目说明&#xff1a; 语法定义涉及数字、括号和运算符和-的表达式的语法。起始符号为Expression。一个表达式应该对应于以下之一&#xff1a;一个数字标记Expression ExpressionExpression - Expression- Expression( Expression ) level help 通过语法来描述高级语言的…

网站开发工具6免费做公司手机网站

STL内建了一些函数对象。分为:算数类函数对象,关系运算类函数对象&#xff0c;逻辑运算类仿函数。这些仿函数所产生的对象&#xff0c;用法和一般函数完全相同&#xff0c;当然我们还可以产生无名的临时对象来履行函数功能。使用内建函数对象&#xff0c;需要引入头文件 functi…

慈溪做网站哪家好免费发帖推广的平台

文章目录 1 复习一元函数复合函数求导2 一元函数与多元函数复合的情形3 多元函数与多元函数复合的情形4 其他情形5 抽象复合函数求导6 全微分不变性结语 1 复习一元函数复合函数求导 y f ( u ) , u ϕ ( x ) ⇒ f [ ϕ ( x ) ] d y d x d y d u ⋅ d u d x f ′ ( u ) ⋅ ϕ…