09.20 C++对C的扩充以及C++中的封装、SeqList

在这里插入图片描述
在这里插入图片描述

SeqList.h

#ifndef SEQLIST_H
#define SEQLIST_H#include <iostream>
#include<memory.h>
#include<stdlib.h>
#include<string.h>using namespace std;//typedef int datatype;        //类型重命名
using datatype = int;//封装一个顺序表
class SeqList
{
private:datatype *ptr;        //指向堆区空间的起始地址int size;             //总长度int len = 0;          //当前顺序表实际长度public:void init(int n);//判空bool empty();//判满bool full();//尾插void push_back(datatype e);//任意位置插入void insert(int index);//任意位置删除void erase(int index);//定义展示函数void show();//求长度int get_size();//排序void sort(bool flag);//任意位置数据datatype& at(int index);//尾删void pop_back();};#endif // SEQLIST_H

SeqList.cpp

#include "SeqList.h"void SeqList::init(int n)
{//在堆区申请出一个长度为n的空间,将其实地址赋值给ptrthis->ptr = new datatype[n];//给len进行初始化this->len = 0;this->size = n;
}//判空
bool SeqList::empty()
{return this->len == 0;
}//判满
bool SeqList::full()
{return this->len == this->size;
}//尾插
void SeqList::push_back(datatype e)
{//判断是否满了if(this->full()){return ;}this->ptr[len++] = e;}//任意位置插入
void SeqList::insert(int index){//判满if(this->full()){cout<<"列表满"<<endl;return;}if(index>size){cout<<"超出容器大小"<<endl;return;}if(index<0){cout<<"位置不合法"<<endl;return;}int in;cout<<"请输入要插入的内容:"<<endl;cin>>in;for(int i=len;i>=index;i--){ptr[i] = ptr[i-1];cout<<ptr[i]<<endl;}ptr[index-1]=in;len++;
}//任意位置删除
void SeqList::erase(int index){if(index>size){cout<<"超出容器大小"<<endl;return;}if(index<0){cout<<"位置不合法"<<endl;return;}if(empty()){cout<<"表为空"<<endl;return;}for(int i=index-1;i<len-1;i++){ptr[i]=ptr[i+1];}len--;}//定义展示函数
void SeqList::show()
{//判空if(empty()){cout<<"表为空"<<endl;return;}cout<<"当前顺序表中的元素分别是:";for(int i=0; i<this->len; i++){cout<<this->ptr[i]<<" ";}cout<<endl;
}
//求总长
int SeqList::get_size(){return this->len;
}//获取任意位置的元素
datatype& SeqList::at(int index){return ptr[index-1];
}// 排序函数
void SeqList::sort(bool flag){for (int i=0; i<len-1;i++) {for (int j=0; j<len-1-i;j++) {if ((flag&&ptr[j]>ptr[j+1])||(!flag&&ptr[j]<ptr[j+1])) {// 交换元素datatype temp=ptr[j];ptr[j]=ptr[j+1];ptr[j+1]=temp;}}}
}//尾删
void SeqList::pop_back(){if(empty()){cout<<"列表为空"<<endl;return;}len--;
}

mian.cpp

#include "SeqList.h"using namespace std;int main()
{SeqList sl;           //实例化一个顺序表对象sl.init(5);            //申请空间sl.push_back(1111);sl.push_back(2222);sl.push_back(3333);//sl.insert(1);//sl.erase(2);//cout<<sl.at(2)<<endl;sl.sort(0);sl.show();return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【实用教程】基于GIS和DEM的地形地貌特征提取与分析—以河北省为例(附详细步骤)

实验背景 河北省作为中国地形地貌最齐全的省份&#xff0c;其独特的地理位置和地质结构为基于GIS和DEM的地形地貌特征提取与分析提供了丰富的研究对象和实际应用场景。从西北向东南呈半环状逐级下降&#xff0c;包括高原、山地、丘陵、盆地、平原等类型&#xff0c;这种多样性…

【HTML5】html5开篇基础(1)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

python机器人编程——用手机web远程视频监控并控制小车驾驶(上篇vrep仿真)

目录 一、前言二、技术架构三、设备端实现四、服务控制端实现&#xff08;1&#xff09;摄像头服务模块&#xff08;2&#xff09;web服务器 五、web端实现&#xff08;1&#xff09;视频显示&#xff08;2&#xff09;驾驶盘的实现&#xff08;3&#xff09;心跳 六、总结七、…

情感类智能体——你的微信女神

智能体名称&#xff1a;你的微信女神 链接&#xff1a;文心智能体平台AgentBuilder | 想象即现实 (baidu.com)https://agents.baidu.com/agent/preview/RulbsUjIGj4wsinydlBH7AR3NQKFungt 简介 “你的微信女神”是一个直率的智能体&#xff0c;她用犀利而真实的言辞帮助用户…

Jboss CVE-2015-7501 靶场攻略

漏洞介绍 这是经典的JBoss反序列化漏洞&#xff0c;JBoss在/invoker/JMXInvokerServlet请求中读取了⽤户传⼊的对象&#xff0c;然后我们利⽤Apache Commons Collections中的 Gadget 执⾏任意代码 影响范围 JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10 …

交易量大幅下滑,被华尔街投行下调目标价,是时候卖出Coinbase股票了吗?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;由于交易量出现了大幅下滑&#xff0c;华尔街投行杰富瑞已经将Coinbase的目标下调到了220美元&#xff0c; &#xff08;2&#xff09;尽管2024年第二季度订阅和服务业务增长强劲&#xff0c;但Coinbase的财务业绩还是未…

Jenkins自动化部署后端项目看这篇就够了

本文主要讲解&#xff0c;使用Jenkins自动化部署后端工程。讲解怎么自动化部署前后的分离项目中的后端工程。 前提条件&#xff1a;本地需要Jenkins&#xff0c;如果你不知道怎么安装&#xff0c;可以看我的另外一篇文章。 Jenkins实现自动部署的步骤&#xff1a; 先拉取git…

9.20作业

手动封装一个顺序表&#xff08;SeqList&#xff09;,分文件编译实现 有私有成员&#xff1a; 顺序表数组的起始地址 ptr、 顺序表的总长度&#xff1a;size、顺序表的实际长度&#xff1a;len 成员函数&#xff1a; 初始化 init(int n) 判空&#xff1a;empty 判满&#xff1…

计算机毕业设计 美发管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Chat2VIS: Generating Data Visualizations via Natural Language

Chat2VIS:通过使用ChatGPT, Codex和GPT-3大型语言模型的自然语言生成数据可视化 梅西大学数学与计算科学学院&#xff0c;新西兰奥克兰 IEEE Access 1 Abstract 数据可视化领域一直致力于设计直接从自然语言文本生成可视化的解决方案。自然语言接口 (NLI) 的研究为这些技术的…

从虚拟到现实:数字孪生与数字样机的进化之路

数字化技术高速发展的当下&#xff0c;计算机辅助技术已成为产品设计研发中不可或缺的一环&#xff0c;数字样机&#xff08;Digital Prototype, DP&#xff09;与数字孪生技术便是产品研发数字化的典型方法。本文将主要介绍数字样机与数字孪生在国内外的发展&#xff0c;并针对…

Java 并发编程 —— AQS 抽象队列同步器

文章目录 什么是 AQS底层数据结构—— CLH 队列入队和出队状态标志位AQS 的代码设计思路AQS 提供的钩子方法参考资料 什么是 AQS AQS 是 JUC 提供的一个用于构建锁和同步容器的基础类&#xff0c;用于减少由于无效争夺导致的资源浪费和性能恶化。JUC 包内的许多类都是基于 AQS…

【JPCS出版】第四届电气工程与计算机技术国际学术会议(ICEECT 2024,9月27-29)

会议信息 会议官网&#xff1a;www.iceect.com 2024 4th International Conference on Electrical Engineering and Computer Technologywww.iceect.com 时间地点&#xff1a;2024年9月27日-29日 | 线上&#xff08;ZOOM&#xff09; 最终截稿时间&#xff1a;9月23日 主办…

【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略

文章目录 C类与对象前言读者须知RVO 与 NRVO 的启用条件如何确认优化是否启用&#xff1f; 1. 按值传递与拷贝省略1.1 按值传递的概念1.2 示例代码1.3 按值传递的性能影响1.3.1 完全不优化 1.4 不同编译器下的优化表现1.4.1 Visual Studio 2019普通优化1.4.2 Visual Studio 202…

2024.9.20营养小题【1】

这道题并不难&#xff0c;但是通过这道题&#xff0c;对知识有了一些更深一点的理解吧。 我们知道&#xff0c;数组名代表的其实是数组中首元素的指针&#xff1b;字符串其实是一个数组&#xff1b;所以字符串名是指向字符串中首元素地址的指针&#xff1b;strlen(字符串名&am…

Spring Boot利用dag加速Spring beans初始化

1.什么是Dag&#xff1f; 有向无环图(Directed Acyclic Graph)&#xff0c;简称DAG&#xff0c;是一种有向图&#xff0c;其中没有从节点出发经过若干条边后再回到该节点的路径。换句话说&#xff0c;DAG中不存在环路。这种数据结构常用于表示并解决具有依赖关系的问题。 DAG的…

什么是损失函数?常见的损失函数有哪些?

损失函数 什么是损失函数&#xff1f;损失函数作用如何设计损失函数常见的损失函数有哪些&#xff1f; 什么是损失函数&#xff1f; 损失函数&#xff08;Loss Function&#xff09;&#xff0c;也称为误差函数&#xff0c;是机器学习和深度学习中的一个重要概念。它用于衡量模…

python怎么打开编辑器

1、在电脑开始菜单中点击所有程序&#xff0c;找到Python程序&#xff0c;点击其中idle。 2、然后点击左上角的“File”&#xff0c;打开菜单&#xff0c;在下拉菜单中选择“New File”选项&#xff0c;就可打开python编辑器了。 3、在打开的python编辑器中就可以输入自己想写的…

105.游戏安全项目-基址的技术原理-分析技巧

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信…

如何衡量企业品牌力?判断指标有哪些?

企业品牌力是指品牌在市场中的竞争力和影响力&#xff0c;它反映了品牌的价值、知名度、忠诚度、感知质量、差异化以及市场表现等方面。要去衡量一个企业的品牌力&#xff0c;大多从品牌的知名度、忠诚度、所占市场份额、顾客口碑、社媒影响力、品牌资产价值等多方面去判断。我…