c++:类class

1.手动封装一个顺序表(SeqList),分文件编译实现,包含如下:

有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len

成员函数:初始化 init(int n)

判空:empty

判满:full

尾插:push_back

插入:insert(int index)

任意位置删除:erase(int index)

尾删: pop_back

求长度:size()

获取任意位置元素:& at(int inex)

将顺序表进行排序:sort(bool flag) //flag 为真,表示升序,否则是降序

主函数

#include <iostream>
#include <string.h>
#include "list.h"
int main()
{Seqlist list;list.init(6);list.push_back(1);list.push_back(4);list.push_back(5);list.push_back(2);list.push_back(7);list.show();cout<<"插入:"<<endl;list.insert(2,9);list.show();cout<<"删除:"<<endl;list.erase(2);list.show();cout<<"尾删:"<<endl;list.pop_back();list.show();cout<<"当前大小:"<<ends;cout<<list.at(2)<<endl;cout<<"排序后:"<<endl;list.sort(1);list.show();return 0;
}

list.h

#ifndef LIST_H
#define LIST_Husing namespace std;//封装顺序表class Seqlist
{
private:int *ptr;int size;int len=0;public:void init(int n);bool empty();bool full();void push_back(int e);//尾插void insert(int index,int num);//任意位置删除void erase(int index);//尾删void pop_back();void show();//当前长度int cur_size();int at(int index);void sort(bool flag);};#endif // LIST_H

list.c

#include "list.h"
#include <iostream>using namespace std;//封装顺序表void Seqlist::init(int n)
{//堆区申请空间(大小为n)this->ptr=new int[n];//bzero(this->ptr,sizeof(int)*n);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(int e)//尾插
{if(this->full()){return ;}this->ptr[len++]=e;
}
//插入
void Seqlist::insert(int index,int num)
{if(full()){return;}for(int i=len-1;i>=index-1;i--){ptr[i+1]=ptr[i];}ptr[index-1]=num;len++;
}
//任意位置删除
void Seqlist::erase(int index)
{if(empty()){return;}for(int i=index;i<len;i++){ptr[i-1]=ptr[i];ptr[i]=NULL;}len--;
}
//尾删
void Seqlist::pop_back()
{if(empty()){return;}ptr[len-1]=NULL;len--;}void Seqlist::show()
{//判空if(len==0){return;}cout<<"顺序表"<<endl;for(int i=0;i<len;i++){cout<<ptr[i]<<ends;}cout<<endl;
}
//当前长度
int Seqlist::cur_size()
{if(empty()){return 0;}else{return len;}
}int Seqlist::at(int index)
{int num;num=ptr[index-1];return num;
}void Seqlist::sort(bool flag)
{if(flag){for(int i=1;i<len;i++){for(int j=0;j<len-i;j++){if(ptr[j]>ptr[j+1]){int temp;temp=ptr[j];ptr[j]=ptr[j+1];ptr[j+1]=temp;}}}}else{for(int i=1;i<len;i++){for(int j=0;j<len-i;j++){if(ptr[j]<ptr[j+1]){int temp;temp=ptr[j];ptr[j]=ptr[j+1];ptr[j+1]=temp;}}}}
}

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

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

相关文章

CUDA并行架构

一、CUDA简介 CUDA(Compute Unified Device Architecture)是一种由NVIDIA推出的通用并行计算架构&#xff0c;该架构使GPU(Graphics Processing Unit)能够对复杂的计算问题做性能速度优化。 二、串并行模式 高性能计算的关键是利用多核处理器进行并行计算。 串行模式&#…

使用Anaconda安装pyTorch

1.Anaconda简介 Anaconda 是一个流行的 Python 数据科学和机器学习平台&#xff0c;它简化了包管理和部署&#xff0c;使得安装、运行和升级包及其依赖变得非常容易。Anaconda 通过其内置的 Conda 包和环境管理器&#xff0c;提供了一个强大的环境&#xff0c;用于科学计算&…

鸿蒙手势交互(四:多层手势)

四、多层手势 指父子组件嵌套时&#xff0c;父子组件均绑定了手势或事件。有两种&#xff0c;一种默认多层级手势事件&#xff0c;一种自定义多层级手势事件。 默认多层级手势事件&#xff1a;需要分清两个概念&#xff0c;触摸事件&#xff0c;手势与事件 触摸事件&#xf…

介绍个酷炫,适合装逼的命令

Hollywood - 给你的命令行加点魔法般的动画效果 作为命令行的重度用户,你是否想让枯燥的终端界面来点生动有趣的元素?Hollywood来了!这是一个无比诙谐、小巧玲珑而又功能强大的动画效果命令行工具。 Hollywood可以为文本添加各种动画效果,让你的输出显示得像电影般生动活泼。…

powerbi -L10-文件夹内的文件名

powerbi -L10-文件夹内的文件名 Folder.Contents letSource Folder.Contents("\\your_folder\ your_folder "),#"Removed Other Columns" Table.SelectColumns(Source,{"Name", "Date modified", "Folder Path"}), in#&q…

小新-13 2019 Intel款IML版【81UQ】原装出厂Win10系统镜像下载

恢复lenovo联想开箱状态&#xff0c;自带预装OEM系统安装包 链接&#xff1a;https://pan.baidu.com/s/1wwPriBoIwNOAfL-YcX1F7g?pwdg7ki 提取码&#xff1a;g7ki 联想原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软…

视频单目标跟踪研究

由于对视频单目标跟踪并不是很熟悉&#xff0c;所以首先得对该领域有个大致的了解。 视频目标跟踪是计算机视觉领域重要的基础性研究问题之一&#xff0c;是指在视频序列第一帧指定目标 后&#xff0c;在后续帧持续跟踪目标&#xff0c;即利用边界框&#xff08;通常用矩形框表…

solana项目counter,测试过程中执行报错记录分享

跟随HackQuest部署counter项目&#xff0c;使用 Solana 官方提供的 playgroud 。这个平台让我们的部署和测试过程变得更加简便高效。 合约代码 lib.rs中复制以下代码 use anchor_lang::prelude::*; use std::ops::DerefMut;declare_id!("CVQCRMyzWNr8MbNhzjbfPu9YVvr97…

扣子智能体实战:一键生成公众号图文,AI时代文盲也能写公众号,赚钱秘籍

文章目录 一&#xff0c;需求简述二&#xff0c;智能体制作1&#xff0c;智能体人设和技能2&#xff0c;流程开发2.1 设置开始节点2.2 增加一个生成标题的大模型节点2.3 增加一个代码节点 2.4 增加一个插件节点用以生成文章配图2.4 增加一个大模型节点-根据标题和思路生成文章大…

树与图的深度优先遍历(dfs的图论中的应用)

模板题 846. 树的重心 给定一颗树&#xff0c;树中包含 nn 个结点&#xff08;编号 1∼n&#xff09;和 n−1条无向边。 请你找到树的重心&#xff0c;并输出将重心删除后&#xff0c;剩余各个连通块中点数的最大值。 重心定义&#xff1a;重心是指树中的一个结点&#xff…

EmptyDir-数据存储

1.EmptyDir EmptyDir是最基础的Volume类型&#xff0c;一个EmptyDir就是Host上的一个空目录。 EmptyDir是在Pod被分配到Node时创建的&#xff0c;它的初始内容为空&#xff0c;并且无须指定宿主机上对应的目录文件&#xff0c;因为kubernetes会自动分配一个目录&#xff0c;当…

无监督神经组合优化的扩散模型框架

文章目录 Abstract1. Introduction2. Problem Description2.1 无监督神经组合优化3. Neural Probabilistic Optimization Objective for Approximate Likelihood Models3.1 具有联合变分上界的训练扩散模型Abstract 从离散集合的不可处理分布中进行采样,而不依赖相应的训练数据…

基于Springboot的助学金管理系统设计与实现

文未可获取一份本项目的java源码和数据库参考。 一、研究背景 利用计算机来实现助学金管理系统&#xff0c;已经成为一种趋势&#xff0c;相比传统的手工管理方式&#xff0c;利用软件进行助学金管理系统&#xff0c;有着执行快&#xff0c;可行性高、容量存储大&#xff0c;…

15.多线程概述一(下篇)

目录 1.进程与线程 2.实现多线程方式一&#xff1a;继承Thread类【应用】 3.实现多线程方式二&#xff1a;实现Runnable接口【应用】 4.实现多线程方式三&#xff1a;实现Callable接口【应用】 5.三种实现方式的对比与套路 6.设置和获取线程名称/线程对象【应用】 7.线程优先级…

devops的道法术器

devops的道法术器 道、法、术、器自上而下是系统思考的层次&#xff0c;自下而上是解决问题的层次 “道”是目标、价值观&#xff0c;对价值的定位。 快速交付价值&#xff0c;灵活响应变化&#xff0c;这是从价值层面的追求&#xff0c;或者是从第一性原理的角度来讲&#xf…

赋能企业沟通:2024年专业IM即时通讯软件的重要性不可小觑!

随着数字经济的快速发展&#xff0c;企业的沟通与协作方式正以前所未有的速度发生着变化。特别是在经历了全球疫情之后&#xff0c;远程工作和灵活办公成为了常态&#xff0c;而即使在疫情结束后&#xff0c;这种趋势也没有消退。企业对于高效、便捷、实时的沟通需求日益增长&a…

13_Python的高阶函数

高阶函数 高阶函数是Python编程中一个非常强大和有用的特性&#xff0c;它们允许程序员编写更简洁、更抽象的代码。 Python中的高阶函数是那些至少满足以下一个条件的函数&#xff1a; 接受一个或多个函数作为输入&#xff08;也就是说&#xff0c;它的参数之一是函数&#…

EI-BISYNCH协议,欧陆2000系列设备读取数据

EI-Bisynch是一种基于ANSI X3.28-2.5 A4标准的专有协议&#xff0c;用于消息框架。尽管其名称中包含“Bisynch”&#xff0c;但它实际上是一种基于ASCII的异步协议。数据通过7位数据位、偶校验和1个停止位进行传输。 4.1 术语解释 4.1.1 地址 每个仪器都有一个可配置的地址&…

大模型推理性能优化

LLM 推理的核心指标 首 Token 延迟(决定了用户体验) 延迟:从输入到输出最后一个 token 的延迟 吞吐量:每秒针对所有请求生成的 token 数(针对所有并发请求) 推理的性能卡点 1. KV-Cache 大小导致并发能力受限 LLM推理的过程是一个自回归的过程,前 i 次的token会作为…

Linux StableDiffusion下载外网插件失败, 自己下载安装

(sd) zhouyueubun:/data/sd-webui-aki-v4.9$ python webui.py 先看看使用插件时报的错 看截图就知道是SmilingWolf/wd-v1-4-vit-tagger-v2包不存在 先加载本地包&#xff0c;由于本地包没有&#xff0c;自动下载外网的包&#xff0c;需要科学上网访问外网网站哈。 https://h…