简易网站只做网站不做app

web/2025/9/27 5:10:29/文章来源:
简易网站,只做网站不做app,辽宁大连建设工程信息网,枣庄公司做网站本章主要是讲模拟实现list#xff0c;文章末附上代码。 目录 一、创建思路 二、构造函数 三、迭代器 四、增删 五、代码 一、创建思路 如下方代码#xff0c;链表是由一块一块不连续的空间组成的#xff0c;所以这里写了三个模板#xff0c;一个是节点#xff0c;一…本章主要是讲模拟实现list文章末附上代码。 目录 一、创建思路 二、构造函数 三、迭代器 四、增删 五、代码 一、创建思路 如下方代码链表是由一块一块不连续的空间组成的所以这里写了三个模板一个是节点一个是迭代器分别放在struct创建的类因为这个是可以直接访问从下方代码可以看出我是在list里面定义了一个head这个就是哨兵位头节点然后在list_node里面写的就是节点的初始化需要使用时直接new一个_list_iterator这个就是迭代器写的地方了这里也是直接写了两个一个普通的迭代器一个const的。 namespace ly {     templateclass T     struct list_node     {         list_nodeT* _next;         list_nodeT* _prev;         T _data;         list_node(const T x T())             :_next(nullptr)             , _prev(nullptr)             , _data x         {}     };     templateclass T,class Ref,class Ptr     struct _list_iterator     {         typedef list_nodeT node;         typedef __list_iteratorT, Ref, Ptr self;         node* _node;         node* _node;         _list_iterator(node* n)             :_node(n)         {}     };     templateclass T     class list     {     public:         typedef list_nodeT node;         typedef _list_iteratorT, T, T* iterator;         typedef _list_iteratorT, const T, const T* const_iterator;     private:         node* _head;     }; } 二、构造函数 如下方代码所示就是我写的构造函数因为这个链表是一个双向循环带头链表所以直接new一个node在把哨兵位的next和prev指向自己就创建出了一个链表如下方图片可以看出创造出来了。 list()         {             _head new node;             _head-_next _head;             _head-_prev _head;         } 三、迭代器 这里是把迭代器能用到的都写了例如解引用就是利用这个节点指针直接访问就可以了但是考虑到了可能访问常量指针所以这里就是利用模板参数进行访问的第二个就是相当于访问数据了因为在流输出的时候正常是访问不到因为迭代器访问的是这个节点的额指针这时重载了一个-就可以正常访问了就是下一个节点的地址也就是这个节点里面存入的next前置和后置在之前文章中都说过这里就不详细介绍了后置就是价格int以作区分--也是类似操作与直接判断节点的地址是否相同就可以了。 Ref operator*()         {             return _node-_data;         }         Ptr operator-()         {             return _node-_data;         }         self operator()         {             _node _node-_next;             return *this;         }         self operator(int)         {             self tmp(*this);             _node _node-_next;             return tmp;         }         self operator--()         {             _node _node-_prev;             return *this;         }         self operator--(int)         {             self tmp(*this);             _node _node-_prev;             return tmp;         }         bool operator(const self s)         {             return _node s._node;         }         bool operator!(const self s)         {             return _node ! s._node;         } 四、增删 再写数据结构的顺序表的时候就知道了头插尾插头删尾删是可以直接使用inster的所以这里是直接写了inster在进行调用的代码如下测试代码如下结果如图这里是直接调用insert的所以就不测试这个了。 iterator begin()         {             return iterator(_head-_next);         }         iterator end()         {             return iterator(_head);         }                  const_iterator begin() const         {             return const_iterator(_head-_next);         }         const_iterator end() const         {             return const_iterator(_head);         }         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 x)         {             node* cur pos._node;             node* prev cur-_prev;             node* new_node new node(x);             prev-_next new_node;             new_node-_prev prev;             new_node-_next cur;             cur-_prev new_node;         }         void erase(iterator pos)         {             assert(pos ! end());             node* prev pos._node-_prev;             node* next pos._node-_next;             prev-_next next;             next-_prev prev;             delete pos._node;         } void Test1()     {         listint l1;         l1.push_back(1);         l1.push_back(2);         l1.push_back(3);         l1.push_back(4);         print(l1);         l1.push_front(5);         l1.push_front(6);         l1.push_front(7);         l1.push_front(8);         print(l1);         l1.pop_back();         l1.pop_back();         print(l1);         l1.pop_front();         l1.pop_front();         print(l1);     }             五、代码 #pragma once #include assert.h namespace ly {templateclass Tstruct list_node{list_nodeT* _next;list_nodeT* _prev;T _data;list_node(const T x T()):_next(nullptr), _prev(nullptr), _data(x){}};templateclass T, class Ref, class Ptrstruct _list_iterator{typedef list_nodeT node;typedef _list_iteratorT, Ref, Ptr self;node* _node;_list_iterator(node* n):_node(n){}Ref operator*(){return _node-_data;}Ptr operator-(){return _node-_data;}self operator(){_node _node-_next;return *this;}self operator(int){self tmp(*this);_node _node-_next;return tmp;}self operator--(){_node _node-_prev;return *this;}self operator--(int){self tmp(*this);_node _node-_prev;return tmp;}bool operator(const self s){return _node s._node;}bool operator!(const self s){return _node ! s._node;}};templateclass Tclass list{public:typedef list_nodeT node;typedef _list_iteratorT, T, T* iterator;typedef _list_iteratorT, const T, const T* const_iterator;list(){_head new node;_head-_next _head;_head-_prev _head;}iterator begin(){return iterator(_head-_next);}iterator end(){return iterator(_head);}const_iterator begin() const{return const_iterator(_head-_next);}const_iterator end() const{return const_iterator(_head);}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 x){node* cur pos._node;node* prev cur-_prev;node* new_node new node(x);prev-_next new_node;new_node-_prev prev;new_node-_next cur;cur-_prev new_node;}void erase(iterator pos){assert(pos ! end());node* prev pos._node-_prev;node* next pos._node-_next;prev-_next next;next-_prev prev;delete pos._node;}private:node* _head;};void print(listint l){listint::iterator it l.begin();while (it ! l.end()){cout *it ;it;}cout endl;}void Test1(){listint l1;l1.push_back(1);l1.push_back(2);l1.push_back(3);l1.push_back(4);print(l1);l1.push_front(5);l1.push_front(6);l1.push_front(7);l1.push_front(8);print(l1);l1.pop_back();l1.pop_back();print(l1);l1.pop_front();l1.pop_front();print(l1);} }#define _CRT_SECURE_NO_WARNINGS 1 #include iostreamusing namespace std;#include list.hint main() {ly::Test1(); }

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

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

相关文章

免费视频网站app使用排名东莞网站建设 硅橡胶

最近在写定时任务,以前没接触过。查了些相关资料说使用quartz定时框架。需要配置文件:config-quartz.xml相关配置如下(红色部分是之后添加的,在后面步骤会说明):xsi:schemaLocation"http://www.springframework.org/schema/b…

网络服务提供者是谁张家口seo

2019独角兽企业重金招聘Python工程师标准>>> 所谓粒子系统可以想象为一堆粒子由一个点或一个面按照一定的规律进行喷射。 粒子系统大致分为2类:一类为“点喷式”,一类为“面喷式”。可以想象前者由一个点进行喷射,类似于焰火&…

邵阳住建部网站阳原网站建设

文章目录 1.流复制介绍2.异步流复制2.1.主库部署2.2.备库部署2.3.测试 3.同步复制3.1.主库部署3.2.备库部署3.3.测试 4.主备切换 开源中间件 # PostgreSQLhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/postgresql/postgres-stream/1.流复制…

北京微网站建设设计服务办公室装修专业网站

概念与功能: webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手:隔行变色 -S实际是--save的简写,表示安装的第三方…

国外销售网站怎么进入邯郸论坛网

打印机是我们在办公过程中经常会用到的打印设备,特别是当需要大量的文件资料时,打印机可以帮助我们快速的打印和记录。随着打印机使用的不断广泛,打印机的种类也在不断的增多,为了能够适应现在这个网络智能时代的发展,…

网站建设选哪家公司好宁皓 wordpress

编程  我们日常生活中接触到的电子类产品中的应用都是由编程而来  为什么编程,偷懒  我们通过编程驱使(指挥,命令)的是电信号  为什么上面说编程是偷懒,电的发现,给人们带来了便利,人们…

站长seo网站开发的人李海涛

C开发WPF,开发环境配置 操作系统:Windows XP SP2, Windwos Vista开发工具:Visual Studio 2005,Expression BlendSDK:.NET Framework 3.0或以上不需要其它的了,比C#开发WPF少了一些。但是需要自己手工打造一些代码,也有不少乐趣在里…

沈阳网站建设德泰诺做专业课视频课的网站

SpringCloudAlibaba–Sentinel Sentinel被称为分布式系统的流量防卫兵,是阿里开源流量框架,从服务限流、降级、熔断等多个纬度保护服务。Sentinel同时提供了简洁易用的控制台,可以看到接入应用的秒级数据,并可以在控制台设置一些…

学院网站建设的意义彩票网站开发制作软件

现如今企业的主流生产模式就是流水线生产,一道工序结束后,紧接着开展下一项工序,这种作业模式可以以一种比较高效的方式缩减生产时间。尽管流水作业的效率已经够高的了,但是各个工序之间如果衔接不到位的话,会造成生产…

网站公司苏州怎么用we做网站

展开全部1首先,你需要个安装包,自个去下0如何在官网下载MySQL 数据库2第一步中,选择32313133353236313431303231363533e58685e5aeb931333365666165I accept license term,然后Next3默认选第一项Developer Default ,然后Next4这一步中&#xf…

查网站怎么做的哈尔滨网站建设公司哪家好

首先对于m1的情况非常容易处理(其实这儿因为边界我错了好久。。。),直接DP就好了,设f[i][k]为这个矩阵前i个选k个矩阵的最大和,那么f[i][k]max(f[j][k-1]sum[j1][i]),那么对于m2的时候类似与m1的时候&#…

天河做网站要多少钱建立网站预算

简介:记一次TCP全队列溢出问题排查过程1. 前言本文排查的问题是经典的TCP队列溢出问题,因TCP队列问题在操作系统层面没有明显的指标异常,容易被忽略,故把排查过程分享给大家。2. 问题描述A服务调用B服务接口超时,B服务…

中煤第五建设有限公司seo诊断书

最近想搞一下rt5350,所以找了个原厂的SDK包进行了编译,很快路由器就可以用了,把我的编译操作步骤写了下分享给更多的爱好者,供大家参靠,下一步准备移植摄像头玩玩。有兴趣的可以一起交流。 RT5350移植Toolchain工具的安…

常熟制作网站的地方阿贝云服务器

在数字媒体领域,短视频的崛起已不可忽视。对于商业实体而言,掌握如何通过短视频平台有效吸引潜在客户并提高转化率,已成为一项关键课题。本文旨在深入剖析短视频矩阵系统的构成与作用机制,以期为企业提供一套系统化的策略&#xf…

wordpress 一小时建站教程网页游戏吧

文章目录 代码准备创建jenkins 任务测试推送使用项目里面的jenkinsfile 进行升级操作 文字版本流程项目构建 代码准备 推送代码到gitlab 代码去叩叮狼教育找 k8s 创建jenkins 任务 创建一个k8s-cicd-demo 流水线任务 将jenkins 里面构建时候的地址还有token, 给到…

网站订单模板网站国际化

目录 CMakeLists.txt文件中: 初始化以及实际运用代码: 在partitions.csv 内存分配文件中,添加voice_data项

风溪商城是那个网站建设的哪个公司做公司网站好

看了好多相关的文章都没有完全贴合选用Vue3nuxtts框架的,也不太靠谱,只好自己踩坑实现了 首先去高德开放平台用自己的账号申请一个key,位置如下,申请好后保存好生成的key 我们使用vuemap/vue-amap,一个高德地图2.0版本…

制作网站管理系统线下推广100种方式

题解一: 模拟:定义四个边界,指针按右下左上的顺序遍历,每遍历一条边,边界就减一,并且在某个方向没有可以遍历的数时直接返回。 import java.util.ArrayList; import java.util.List;class Solution {publi…

自己做的网站怎么发布win7大气公司网站源码 企业网页模板建站 制作asp程序后台 中英文代码

QQ邮箱群发邮件时只显示账号?邮件群发对方知道吗? QQ邮箱群发邮件功能为大量信息的传递提供了便利。但有时,我们希望在群发邮件时,不让对方轻易察觉到这是一封群发邮件。下面就让蜂邮为大家揭秘如何巧妙地使用QQ邮箱群发邮件&…

注册免费的网站挂机宝做php网站吗

转载自 Jsoup代码解读之一-概述今天看到一个用python写的抽取正文的东东,美滋滋的用Java实现了一番,放到了webmagic里,然后发现Jsoup里已经有了…觉得自己各种不靠谱啊!算了,静下心来学学好东西吧! Jsoup…