C++对C的扩充(8.28)

news2024/12/24 0:19:52

1.使用C++手动封装一个顺序表,包括成员数组1个,成员变量n个

代码:
#include <iostream>

using namespace std;

//类型重命名
using datatype = int;
#define MAX 30

struct seqList
{
private:    //私有权限
    datatype *data;     //相当于 datatype data[MAX]={0};  顺序表的数组
    int size = 0;       //数组的大小
    int len = 0;        //顺序表实际长度

public:     //结构体内声明
    //初始化函数
    void init(int s)
    {
        size = s;
        data = new datatype[size];
    }

    //下面是要实现的功能函数
    //判空函数
    bool empty();
    //判满函数
    bool full();
    //添加数据函数
    bool add(datatype e);
    //求当前顺序表的实际长度
    int length();
    //任意位置插入函数
    bool insert_pos(int pos,datatype e);
    //任意位置删除函数
    bool delete_pos(int pos);
    //访问容器中任意一个元素at
    datatype at(int index);
    //遍历顺序表
    bool list_show();
};

//判空函数
bool seqList::empty()
{
    return len==0;
}
//判满函数
bool seqList::full()
{
    return len==size;
}
//添加数据函数
bool seqList::add(datatype e)
{
    if(full())
            {
                cout<<"表已满,添加失败"<<endl;
                return 0;
            }
            data[len]=e;
            len++;
            return 1;

}
//求当前顺序表的实际长度
int seqList::length()
{
    return len;
}
//任意位置插入函数
bool seqList::insert_pos(int pos, datatype e)
{
    if(full() || pos<0 || pos>=len)
    {
        cout<<"插入失败"<<endl;
        return 0;
    }
    //将插入前,pos处及其后面的元素后移
    for(int i=len-1;i>=pos;i--)
    {
        data[i+1]=data[i];
    }
    //插入数据
    data[pos]=e;
    len++;
    cout<<"插入成功"<<endl;
    return 1;
}
//任意位置删除函数
bool seqList::delete_pos(int pos)
{
    if(empty() || pos<0 || pos>=len)
    {
        cout<<"删除失败"<<endl;
        return 0;
    }
    for(int i=pos;i<len-1;i++)
    {
        data[i]=data[i+1];
    }
    //表长变化
    len--;
    cout<<"删除成功"<<endl;
    return 1;
}
//访问容器中任意一个元素at
datatype seqList::at(int index)
{
    return data[index];
}
//遍历顺序表
bool seqList::list_show()
{
    if(empty())
    {
        cout<<"遍历失败"<<endl;
        return 0;
    }
    cout<<"顺序表中的数据为:";
    for(int i=0;i<len;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl;
    return 1;
}

/*************主函数******************/
int main()
{
    seqList L;
    L.init(10);
    //添加4个元素
    L.add(1);
    L.add(2);
    L.add(3);
    L.add(4);
    L.list_show();
    //求实际长度
    int n=L.length();
    cout<<"顺序表的实际长度为:"<<n<<endl;
    //插入功能
    L.insert_pos(3,10);
    L.list_show();
    //删除功能
    L.delete_pos(0);
    L.list_show();
    //访问功能
    int a=L.at(2);
    cout<<"访问data[2](第3位)数据为:"<<a<<endl;

    return 0;
}
运行结果图:

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

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

相关文章

【项目源码】终于有人将打字游戏和编程英语结合起来啦!编程初学者的福音

Hello&#xff01;各位彦祖&#xff0c;亦菲们&#xff01;又是美好的一天&#xff01;今天给大家分享一个Java项目源码&#xff1a;Java打字游戏项目源码&#xff01; 看到这里&#xff0c;你可能会说&#xff01; 一个破打字游戏有什么可神气的&#xff01;&#xff01;&…

【自由能系列(中级)】状态与动作的协同机制解析 ——从马尔可夫毯到大脑功能的全方位剖析

状态与动作的协同机制解析 ——从马尔可夫毯到大脑功能的全方位剖析 Synergistic Mechanism of States and Actions —— A Comprehensive Analysis from Markov Blanket to Brain Function 核心结论&#xff1a; 中文总结&#xff1a; 系统将状态划分为内部状态和隐藏或外…

Flutter中的Key

在Flutter 中&#xff0c;Key 是 几乎所有 widget 都具有的属性。为什么 widget 具有 Key 呢&#xff1f;Key的作用是什么&#xff1f; 什么是 Key Key是Widget、Element 和 SemanticNodes 的标识符。 Key 是Widget、Element 和 SemanticNodes的唯一标识。例如对于 Widget 在 …

MyBatis的学习————下篇

目录 一、动态SQL 简介 1、if标签 2、where标签 3、trim标签 4、choose、when、otherwise 5、foreach 5.1、批量删除 5.2、批量添加 6、sql标签 二、MyBatis的缓存 1、一级缓存 2、二级缓存 3、二级缓存的相关配置 4、MyBatis缓存查询的顺序 5、 第三方缓存EHCac…

如何在Windows 11上关闭无响应的应用程序?这里有详细步骤

序言 无响应的应用程序令人沮丧,但更糟糕的是这些应用程序拒绝关闭。如果你发现自己处于这种情况,我们有几种方法可以帮助你强制关闭Windows 11 PC上的这些应用程序。让我们找出可用的解决方案。 使用键盘快捷键结束程序 关闭无响应应用程序的最简单方法是使用Windows键盘…

DataWhale AI夏令营 2024大运河杯-数据开发应用创新赛-task2

DataWhale AI夏令营 2024大运河杯-数据开发应用创新赛 YOLO(You Only Look Once)上分心得分享 YOLO(You Only Look Once) YOLO算的上是近几年最火的目标检测模型了&#xff0c;被广泛的应用在工业、学术等领域。 YOLOv1&#xff08;You Only Look Once 第一版&#xff09;于 2…

基于麒麟信安操作系统的光伏发电功率预测系统完成大规模部署建设

麒麟信安操作系统&#xff0c;作为行业数智化建设的安全根基&#xff0c;为电力业务系统提供了稳定可靠的底层平台&#xff0c;在全球能源结构转型大潮中扮演着至关重要的角色。某光伏电站项目中&#xff0c;基于麒麟信安操作系统的光伏发电功率预测系统完成大规模部署建设&…

c#如何加密exe程序防止反编译附软件

1. 先说软件&#xff0c;使用的软件是Dotfuscator&#xff0c;下载地址如下&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/6f2e785c003f2. 软件使用方法&#xff0c;打开软件&#xff0c;选择Create New Project 3. 找到input&#xff0c;把你需要加密的文件导入 4.…

k8s项目的发布

目录 三种发布方式 1.蓝绿发布 2.金丝雀发布&#xff08;灰度发布&#xff09; 实验&#xff1a;k8s实现金丝雀发布 3.滚动发布&#xff08;默认形式&#xff09; 因为应用升级以及新旧业务切换&#xff0c;所以在这个过程当中如何保证对外的服务正常是一个非常重要的问题…

手把手教你如何使用Python连接MySQL数据

数据库编程是在应用程序中与数据库交互和管理数据的关键部分。MySQL是一种流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;在Python中进行MySQL数据库编程相对容易。 本文介绍如何使用Python进行MySQL数据库编程&#xff0c;包括连接数据库、执行SQL查询…

高频面试题:SpringMVC的执行流程

SpringMVC一直以来都是面试中的重点&#xff0c;尽管随着近年来springboot和微服务的广泛流行&#xff0c;关于对springMVC的考察比重略有下降&#xff0c;但依然是面试中的重点&#xff0c;也需要我们对其有一个比较清楚和全面的认识。 如果将java的发展史中重要的组件进行排…

备忘录模式 详解

备忘录模式 简介: 保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象, 允许在不破坏封装性的前提下&#xff0c;捕获和恢复对象的内部状态。 场景: 很多地方都用到了备忘录模式, 比如网络消息的序列化和反序列化, 数据的本地保存与加载等, 最简单的json的dump和loa…

全能与专精:探索AI模型的未来之路

AI模型&#xff1a;追求全能还是专精&#xff1f; 近日&#xff0c;OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略&#xff0c;"草莓"模型展现出惊人的多样性。而这种全能型 AI 是否代表了未来趋势&#xff1f;相比专攻于某一领域…

OpenAI 将于今年秋天推出新的先进“Strawberry草莓”生成式人工智能产品

今年秋季&#xff0c;OpenAI将推出一款备受瞩目的新型生成式人工智能产品——“草莓”。据悉&#xff0c;这款名为“草莓”的AI程序将带来一系列创新突破&#xff0c;它将大幅提升人工智能处理复杂数学题、执行战略任务以及深入探索各种主题的能力&#xff0c;而这一切无需依赖…

前景堪忧?SaaS巨头Salesforce,25年辉煌后能否继续领跑市场?

最近&#xff0c;时常听到有人说Salesforce失去了活力&#xff0c;这或许是对整个生态系统的普遍感受。多年来&#xff0c;Salesforce一直保持着巨大的发展势头&#xff0c;通过收购、创新和建立良好的合作伙伴关系已发展成为云计算行业巨头。在经历了近25年创纪录的增长和创新…

记Spring HTTP Invoker远程调用的使用(二)基于Servlet方式,配置servlet映射url-pattern实现

目录 前言 一、概念 二、代码实现 1. 服务端实现 2. 客户端实现 前言 本篇接上一篇记Spring HTTP Invoker远程调用的使用&#xff08;一&#xff09;基于Url映射方式&#xff0c;DispatcherServlet统一处理实现-CSDN博客https://blog.csdn.net/u011529483/article/details/141…

论文解读:Prompt-aligned Gradient for Prompt Tuning

摘要 得益于CLIP等大型预训练的视觉语言模型VLM&#xff0c;我们可以通过离散的提示设计构建Zero-shot分类器&#xff0c;例如&#xff0c;利用图像与提示语句" a photo of a [ CLASS ] "之间的相似度&#xff0c;可以获得图像属于某个类别的置信度分数。此外&#…

【Material UI】Select组件的Customization详解

文章目录 一、Customization的基本概念1. 什么是Customization&#xff1f;2. 为什么要定制化Select组件&#xff1f; 二、定制化InputBase组件1. 定制化InputBase的步骤2. 定制化Select组件3. NativeSelect的定制化 三、Customization的最佳实践1. 使用标准变体&#xff08;St…

JAVA后端框架【spring】--超详解

什么是spring? spring是一个轻量级的ioc和Aop的一站式java开发框架&#xff0c;简化企业级开发 轻量级&#xff1a;框架体积小&#xff08;核心模块&#xff09; IOC IOC:inversion of control 控制反转 把创建对象的控制权反转给spring框架 AOP Aop:面向切面编程 将程…

HarmonyOS( Beta5版)鸿蒙开发:应用冷启动与加载绘制首页

应用冷启动即当启动应用时&#xff0c;后台没有该应用的进程&#xff0c;这时系统会重新创建一个新的进程分配给该应用。 应用冷启动过程大致可分成以下四个阶段&#xff1a;应用进程创建&初始化、Application&Ability初始化、Ability生命周期、加载绘制首页。 加载绘…