C++的封装

手动封装一个顺序表(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>
using namespace std;
using lili=int;
class SeqList
{
private:lili *ptr;lili size;lili len=0;
public:void init (lili n){this->ptr =new lili[n];this->size=n;this->len=0;}bool empty(){return this->len==0;}bool full(){return this->size==this->len;}void push_back(lili e){if(this->full()){return ;}this->ptr[len++]=e;}void out(){if(this->empty()){return ;}cout <<"当前顺序表的元素分别是:";for(int i=0;i<this->len;i++){cout <<this->ptr[i]<<" ";}cout <<endl;}void insert(lili n,lili m){if(this->full()){return;}for(int i=this->len++;i>=m;i--){this->ptr[i]=this->ptr[i-1];}this->ptr[m-1]=n;}void pop_back(){if(this->empty()){return ;}this->ptr[len-1]=this->ptr[len];this->len--;}void dele(lili n){if(this->empty()){return ;}for(int i=n-1;i<len;i++){this->ptr[i]=this->ptr[i+1];}this->len--;}lili size_len(){return this->len;}lili &at(lili n){return this->ptr[n-1];}void sort(bool flag){lili x;if(flag!=0){for(int i=0;i<this->len;i++){for(int j=0;j<this->len-1-i;j++){if(this->ptr[j]>this->ptr[j+1]){x=this->ptr[j];this->ptr[j]=this->ptr[j+1];this->ptr[j+1]=x;}}}}else{for(int i=0;i<this->len;i++){for(int j=0;j<this->len-1-i;j++){if(this->ptr[j]<this->ptr[j+1]){x=this->ptr[j];this->ptr[j]=this->ptr[j+1];this->ptr[j+1]=x;}}}}}
};int main()
{SeqList s1;s1.init(5);s1.push_back(5);s1.push_back(9);s1.push_back(3);s1.push_back(7);s1.out();s1.insert(6,3);s1.out();s1.pop_back();s1.out();s1.dele(3);s1.out();cout <<s1.size_len()<<endl;cout <<s1.at(2)<<endl;s1.sort(1);s1.out();return 0;
}

 

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

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

相关文章

【计算机网络 - 基础问题】每日 3 题(一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

云手机的便捷性和安全性体现在哪?

随着5G技术的迅速发展&#xff0c;云手机在游戏、电商以及新媒体营销等领域中的应用日益广泛。它不仅能够显著降低成本、提升效率&#xff0c;还随着边缘计算和云技术的进步&#xff0c;展现出无限的增长潜力。 云手机的便捷性体现在哪里&#xff1f; 云手机的便捷性毋庸置疑。…

Python Flask网页开发基本框架

注&#xff1a;Flask详细学习请见Flask学习合集。 直接上代码: app.py from flask import Flaskapp Flask(__name__)app.route("/") def hello():return "Hello, World!"if __name__ "__init__":app.run(host "127.0.0.1", port…

基于ExtendSim的 电子制造 仿真模型

说明&#xff1a; 此模型表示电路板制造设施。该过程有4个步骤&#xff1a; *焊料制备 *组件放置 *烤箱 *检查 详情&#xff1a; *烤箱的容量为10张卡&#xff0c;但如果烤箱循环开始时仅能处理5张卡&#xff0c;则最多只能处理5张。 *如果检查员发现问题&#xff0c;他们将修理…

精密运放与普通运放的区别

精密运放和普通运放之间的区别主要体现在性能、设计、应用场合以及关键参数上。以下是对这些区别的详细阐述&#xff1a; 一、性能差异 放大倍数与精度&#xff1a; 精密运放&#xff1a;具有更高的开环放大倍数&#xff0c;能够更精确地放大信号。其失调电压或失调电流非常小…

大数据新视界 --大数据大厂之 Cassandra 分布式数据库:高可用数据存储的新选择

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【matlab】将程序打包为exe文件(matlab r2023a为例)

文章目录 一、安装运行时环境1.1 安装1.2 简介 二、打包三、打包文件为什么很大 一、安装运行时环境 使用 Application Compiler 来将程序打包为exe&#xff0c;相当于你使用C编译器把C语言编译成可执行程序。 在matlab菜单栏–App下面可以看到Application Compiler。 或者在…

数据结构和算法之线性结构

原文出处:数据结构和算法之线性结构 关注码农爱刷题&#xff0c;看更多技术文章&#xff01;&#xff01;&#xff01; 线性结构是一种逻辑结构&#xff0c;是我们编程开发工作应用最广泛的数据结构之一。线性结构是包含n个相同性质数据元素的有限序列。它的基本特征是&…

docker入门安装及使用

docker概述 docker是一种容器技术&#xff0c;它提供了标准的应用镜像&#xff08;包含应用和应用多需要的依赖&#xff09;&#xff0c;因此&#xff0c;我们可以非常轻松的在docker中安装应用&#xff0c;安装好的应用相当于一个独立的容器 如下图所示&#xff0c;为docker中…

如何将Git本地代码推送到Gitee云端仓库

如何将Git本地代码推送到Gitee云端仓库 在使用Git进行版本控制时&#xff0c;将本地代码推送到远程仓库是一个基本且重要的操作。本文将详细介绍如何将你的Git本地代码推送到Gitee&#xff08;码云&#xff09;云端仓库。Gitee是一个国内非常流行的代码托管平台&#xff0c;类…

git删除本地+远程提交记录

//撤销本地仓库提交 1.git log 2.git reset --soft 指定commit版本号 git reset --soft "版本号"&#xff1a;重置至指定版本的提交。这里我们指定版本号为 ②&#xff0c;从而达到撤销 ①的目的。 参数 soft&#xff1a;保留当前工作区&#xff08;代码和文…

Redis 执行 Lua,能保证原子性吗?

前言 小张目前在使用分布式锁 Redisson 实现一个需求。那我在想我能否自己手撸一个能用于分布式环境的锁呢&#xff1f;于是果然尝试。 历经一天后&#xff0c;小张手撸的锁终于写出来了&#xff0c;再次给各位看看&#xff0c;看给位有没有什么优化的建议&#xff1a; // 加…

VSCode 定义代码模板

在使用编写代码的过程中&#xff0c;经常会写一些固定代码段。 以 Java 为例&#xff0c;定义实体类时一般都会编写序列化版本号&#xff1a; Serial private static final long serialVersionUID 1L;这段代码是固定写法&#xff0c;基本不会变&#xff0c;如果每次都手写的…

sqlgun靶场漏洞挖掘

1.xss漏洞 搜索框输入以下代码&#xff0c;验证是否存在xss漏洞 <script>alert(1)</script> OK了&#xff0c;存在xss漏洞 2.SQL注入 经过测试&#xff0c;输入框存在SQL注入漏洞 查询数据库名 查询管理员账号密码 此处密码为MD5加密&#xff0c;解码内容如下 找…

代码随想录第21天|

class Solution { public:vector<string> res;bool isVaild(const string &s,int start,int end){//闭区间if(start>end)return false;if(s[start]0&&start!end){return false;}int num0;for(int istart;i<end;i){if(s[i]>9||s[i]<0)return fals…

华为仓颉语言入门(1):仓颉概述

解锁Python编程的无限可能&#xff1a;《奇妙的Python》带你漫游代码世界 仓颉编程语言是一种专门为应用开发设计的通用语言。与现代编程语言类似&#xff0c;它以高效、稳定和功能强大为核心&#xff0c;确保安全且易于上手。仓颉不仅适用于各种应用场景&#xff0c;还展示了…

使用Python免费将pdf转为docx

刚刚想将pdf转换为docx文档时&#xff0c;居然要收费 还好我学过编程&#xff0c;这不得露两手 将pdf 转换为 docx 文档 的操作步骤 我这里使用的是Python语言 &#xff08;1&#xff09;在终端上安装 pdf2docx 是一个 Python 库&#xff0c;它可以将 PDF 文件转换为 Word (…

中国电子学会202306青少年软件编程(Python)等级考试试卷(二级)真题

一、单选题(共25题,每题2分,共50分) 1、运行以下程序,如果通过键盘先后输入的数是1和3,输出的结果是?( ) a = int(input()) b = int(input()) if a < b:a = b print(a)A. 3 1 B. 1 3 C. 1 D. 3 2、运行以下程序,输出的结果是?( ) n = 10 s = 0 m = 1 while…

【JS】postMessage与MessageChannel

前言 postMessage 和 MessageChannel 都是用来实现跨文档、跨窗口或跨线程&#xff08;Web Worker&#xff09;的消息传递机制。 postMessage 可以在 iframe、同源或跨源窗口之间传递数据&#xff0c;也可以用于主线程与 Web Worker 之间的通信。 postMessage 是一种单向的…

计算机操作系统-进程控制面经

计算机操作系统-进程控制面经在线链接&#xff1a; 计算机操作系统-进程控制面经在线飞书链接&#x1f517;&#xff1a; (https://h03yz7idw7.feishu.cn/wiki/XtRIwWnEdiwgIHkX8Bbc98monpf)