当前位置: 首页 > news >正文

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;
}

相关文章:

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 Seq…...

Git提交类型

说明&#xff1a;Git提交类型指的是代码commit时&#xff0c;写在comment前面的标志&#xff0c;表示此次commit的提交类型&#xff0c;如下&#xff1a; Git提交类型 常见的Git提交类型有&#xff1a; feat&#xff1a;新特性、新功能或优化&#xff1b; fix&#xff1a;修复…...

C++速通LeetCode简单第18题-杨辉三角(全网唯一递归法)

全网唯一递归法&#xff1a; vector<vector<int>> generate(int numRows) {vector<int> v;vector<vector<int>>vn;if (numRows 1){v.push_back(1);vn.push_back(v);v.clear();return vn;//递归记得return}if (numRows 2){v.push_back(1);vn.p…...

Redis作为单线程模型,为什么效率高、速度快呢?

前言&#xff1a; 效率高、速度快是相较于数据库来说的&#xff08;MySQL、Orcale、SQL server&#xff09; 文章目录 一、单线程模式的工作流程二、为什么快&#xff1f; 一、单线程模式的工作流程 这里我们所说的单线程是指&#xff1a;Redis只使用一个线程&#xff0c;来处…...

人工智能——猴子摘香蕉问题

一、实验目的 求解猴子摘香蕉问题&#xff0c;根据猴子不同的位置&#xff0c;求解猴子的移动范围&#xff0c;求解对应的过程&#xff0c;针对不同的目标状态进行求解。 二、实验内容 根据场景有猴子、箱子、香蕉&#xff0c;香蕉挂天花板上。定义多种谓词描述位置、状态等…...

对ViT 中Patch Embedding理解

借鉴了这个博主的ViT Patch Embedding理解-CSDN博客&#xff0c;再加了一些理解。 就通过代码来理解吧 假设输入图像的维度为HxWxC&#xff0c;分别表示高&#xff0c;宽和通道数。 PatchEmbed 的类&#xff0c;它继承了 nn.Module&#xff0c;实现了将输入的2维图像&#…...

Redis基本命令详解

1. 基本命令 命令不区分大小写&#xff0c;而key是区分大小写的 # select 数据库间的切换 数据库共计16个 127.0.0.1:6379> select 1# dbsize 返回当前数据库的 key 的数量 127.0.0.1:6379[1]> dbsize# keys * 查看数据库所有的key 127.0.0.1:6379[1]> keys *# fl…...

Java之线程篇四

目录 volatile关键字 volatile保证内存可见性 代码示例 代码示例2-&#xff08;volatile&#xff09; volatile不保证原子性 synchronized保证内存可见性 wait()和notify() wait()方法 notify() 理解notify()和notifyAll() wait和sleep的对比 volatile关键字 volati…...

计算机毕业设计之:基于微信小程序的校园流浪猫收养系统

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

SpringBoot:关于Redis的配置失效(版本问题)

我们使用redis时发现yaml配置中的redis相关配置不生效&#xff0c;后面发现将配置修改甚至删除所有相关redis的配置&#xff0c;springboot依然能使用redis里面默认的db0并且不报错。上网查阅了一些文章&#xff0c;也都没有解决今天分享下&#xff0c;我的处理方法, SpringBo…...

halcon 快速定义字典

定义一个名为params的字典 Params : dict{} 等价于用 create_dict (Params ) 为字典添加键值对&#xff0c;在halcon中箭只能是字符串&#xff0c;值可以是任何类型的obj或者tuple Params.remove_outer_edges : true Params.max_gap : 150 等价于用 set_dict_object (true,…...

Sublime text3怎么关闭提示更新

问题 sublime text 3有新版本后,会不停地在每次启动后弹窗提示更新版本 第一步 软件安装之前&#xff0c;切记是软件安装之前&#xff01;&#xff01;&#xff01;需要在hosts中添加以下内容(屏蔽官网联网检测)&#xff1a;hosts的位置一般在C:\Windows\System32\drivers\etc…...

生成式语言模型技术栈

生成式语言模型的最新技术栈正在快速发展&#xff0c;尤其是随着大规模预训练模型&#xff08;LLMs&#xff09;和生成式AI的应用不断扩展。以下是当今最前沿的生成式语言模型技术栈&#xff0c;涵盖从模型开发到优化、推理和部署的各个环节。 1. 基础模型开发 基础模型开发包…...

进程分析工具Process Explorer使用

进程分析工具Process Explorer使用 Process Explorer让使用者能了解看不到的在后台执行的处理程序&#xff0c;能显示目前已经载入哪些模块&#xff0c;分别是正在被哪些程序使用着&#xff0c;还可显示这些程序所调用的DLL进程&#xff0c;以及他们所打开的句柄。Process Expl…...

vue 中如何实现鼠标拖动出发滚动条的跟随移动?

使用场景 在做弹窗、表单或 tab 切换需求的时候&#xff0c;有时候因为内容过长会导致出现滚动条&#xff0c;但是只能拖动滚动条时会导致操作不便&#xff0c;我们会希望实现通过拖动内容区实现滚动条的滑动。这样操作就会简单多了。 实现思路 如果要实现鼠标辅助触发滚动条…...

【Java EE】文件IO

Author&#xff1a;MTingle major:人工智能 --------------------------------------- Build your hopes like a tower! 目录 一、文件是什么&#xff1f; 二、针对文件系统操作的API 1.文件路径&#xff0c;文件名&#xff0c;文件是否存在 2. 创建文件 3.删除文件&#…...

使用 React、Material-UI、Spring、MySQL、MyBatis 以及高德 API 模拟实时位置信息

要使用 React、Material-UI、Spring、MySQL、MyBatis 以及高德 API 模拟实时位置信息&#xff0c;你可以按以下步骤来实现&#xff1a; 目录 1. 前端 (React Material-UI) 2. 后端 (Spring Boot MyBatis MySQL) 3. 模拟实时位置数据 4. 前后端联调 1. 前端 (React Mat…...

UniApp一句话经验: px -> rpx动态转换和动态元素区域的获取

px->rpx转换 在多终端条件下&#xff0c;什么devicePixelRatio&#xff0c;upx2px都是不靠谱的&#xff0c;最直接的是这样&#xff1a; const { screenWidth } uni.getSystemInfoSync()const pixelUnit screenWidth / 750 // rpx->px比例基数 动态元素区域获取 多终…...

Python基于flask框架的智能停车场车位系统 数据可视化分析系统fyfc81

目录 技术栈和环境说明解决的思路具体实现截图系统设计python语言django框架介绍flask框架介绍性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示技术路线操作可行性详细视频演示源码获取 技术栈和环境说明 结合用户的使用需求&…...

海外服务器哪个速度最快且性能稳定

海外服务器的速度与性能稳定性受多种因素影响&#xff0c;包括地理位置、网络架构、基础设施质量以及用户网络路径等。在众多选择中&#xff0c;几个特定地区的服务器因其卓越表现而备受推崇。 首先&#xff0c;美国硅谷(加利福尼亚州)与纽约的服务器以其技术领先、网络连接稳定…...

Infinity Router:构建统一流量网关的架构设计与生产实践

1. 项目概述&#xff1a;一个面向未来的路由聚合器 最近在折腾一个很有意思的项目&#xff0c;叫“Infinity Router”。这名字听起来挺唬人的&#xff0c;但说白了&#xff0c;它就是一个 路由聚合器 。不过&#xff0c;它和我们平时在项目里用的那些路由库&#xff08;比如 …...

智芯MCU开发环境实战:从零搭建Keil与JLink生态

1. 环境准备&#xff1a;从零开始的智芯MCU开发之旅 第一次拿到智芯Z20K1x系列开发板时&#xff0c;我和大多数嵌入式开发者一样&#xff0c;迫不及待想点亮第一个LED。但现实往往比想象复杂——当我打开Keil准备大展拳脚时&#xff0c;发现芯片列表里根本找不到智芯的身影。这…...

三步掌握QQ音乐加密文件解码:qmcdump工具完整实战指南

三步掌握QQ音乐加密文件解码&#xff1a;qmcdump工具完整实战指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否…...

别再只盯着效率了!DCDC降压芯片选型,这5个‘隐形’参数才是关键

别再只盯着效率了&#xff01;DCDC降压芯片选型&#xff0c;这5个‘隐形’参数才是关键 在电源设计领域&#xff0c;工程师们往往过于关注DCDC降压芯片的效率、输入输出电压范围等基础参数&#xff0c;却忽略了那些真正影响系统长期稳定性和用户体验的"隐形"特性。这…...

2025 上海 GEO 优化公司最新权威推荐:技术领航者与合作指南

一、核心关键词GEO 优化、生成式引擎优化、AI 搜索流量、上海 GEO 公司、本地服务 GEO、跨境 GEO、DeepSeek 排名优化、豆包排名优化、装修行业 GEO、B2B 获客优化、全域 AI 营销、合规 GEO 服务二、GEO 简介及上海市场现状分析1. GEO 核心定义GEO&#xff08;Generative Engin…...

BEAGLE库终极指南:如何快速实现高性能系统发育分析

BEAGLE库终极指南&#xff1a;如何快速实现高性能系统发育分析 【免费下载链接】beagle-lib general purpose library for evaluating the likelihood of sequence evolution on trees 项目地址: https://gitcode.com/gh_mirrors/be/beagle-lib 你是否在系统发育分析中遇…...

基于MCP协议构建智能LINE Bot:动态工具调用与AI集成实践

1. 项目概述&#xff1a;一个连接LINE Bot与MCP生态的社区驱动工具最近在折腾聊天机器人自动化流程时&#xff0c;发现了一个挺有意思的开源项目node2flow-th/line-bot-mcp-community。简单来说&#xff0c;这是一个社区驱动的工具包&#xff0c;核心目标是在流行的即时通讯应用…...

Gitblit服务端在Windows上安装后启动失败?别慌,手把手教你排查‘Failed creating java’这个经典错误

Gitblit服务端Windows启动报错全攻略&#xff1a;从"Failed creating java"到完美解决 当你满怀期待地在Windows服务器上部署Gitblit&#xff0c;准备为团队搭建一个轻量级的Git代码托管平台时&#xff0c;突然在服务启动环节遭遇"Failed creating java"的…...

Win10下VSCode与OpenCV环境搭建:从零到一的避坑指南

1. 环境准备&#xff1a;安装必要工具链 在Windows 10上搭建OpenCV开发环境&#xff0c;首先需要准备好三个核心工具&#xff1a;MinGW、CMake和VSCode。这三个工具就像盖房子需要的钢筋、水泥和施工图纸&#xff0c;缺一不可。 MinGW是Windows下的GNU工具集&#xff0c;相当…...

HTML5中针对离线存储数据的自动清理与过期策略

...