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

列表的C++实

自动扩容

  1. List item

扩容基数为2
可以设置扩容因子(这里我没有设置)

代码实现如下:


//
// Created by shaoxinHe on 2024/6/4.
//#ifndef CPRIMER_MYLIST_H
#define CPRIMER_MYLIST_H#include <stdexcept>
#include <vector>namespace std {class myList {private:int *arr;int arrCapacity = 10;       // 初始化大小为10int arrSize = 0;                // 当前列表数量int extendRation = 2;           // 扩容数量public:myList() {arr = new int[arrCapacity];}/** 析构删除数组元素* */~myList() {delete[]arr;}/** 获取当前元素数量* */int getSize() {return this->arrSize + 1;}/**  获取列表容量* */int getCapacity() {return this->arrCapacity;}/** 列表尾添加元素* */void add(int num) {if (arrSize == arrCapacity - 1) {extendArr();}arr[arrSize++] = num;}/** 在index位置插入元素num* */void insert(int num, int index) {if (index >= arrSize || index < 0) throw out_of_range("数组越界");if (arrSize + 1 == arrCapacity) extendArr();for (int i = arrSize; i > (index - 1); i--) {arr[i + 1] = arr[i];}arr[index - 1] = num;this->arrSize++;}/** 更新元素* */void set(int index, int num) {if (index < 0 || index >= this->arrSize) throw out_of_range("数组越界");arr[index] = num;}/** 获取指定位置的元素* */int getIndex(int index) {if (index < 0 || index >= arrSize) throw out_of_range("数组越界");else return arr[index - 1];}/** 删除元素* */void remove(int index) {if (index < 0 || index >= arrSize) throw out_of_range("数组越界");for (int i = index; i < this->arrSize; i++) {arr[i] = arr[i + 1];}arrSize--;}void extendArr() {      // 扩容列表int *temp = arr;this->arrCapacity *= this->extendRation;int *newArr = new int[this->arrCapacity];for (int i = 0; i <= arrSize; i++) {newArr[i] = temp[i];}delete[]temp;  // 释放空间this->arr = newArr;}/** 列表转换为Vector打印元素* */vector<int> toVector() {vector<int> vec(arrSize);for (int i = 0; i < arrSize; i++)vec[i] = arr[i];return vec;}};} // std#endif //CPRIMER_LIST_H

相关文章:

列表的C++实

自动扩容 List item 扩容基数为2 可以设置扩容因子&#xff08;这里我没有设置&#xff09; 代码实现如下: // // Created by shaoxinHe on 2024/6/4. //#ifndef CPRIMER_MYLIST_H #define CPRIMER_MYLIST_H#include <stdexcept> #include <vector>namespace st…...

Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验

Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验 一、chisel简介二、vscode搭建scala开发环境2.1 安装Scala官方插件2.2 java版本&#xff08;本人用的是jdk18&#xff09;2.3 下载Scala Windows版本的二进制文件2.4 配置环境变量2.5 scala测试2.6 vscode运行…...

Python和C++赋值共享内存、Python函数传址传值、一些其他的遇到的bug

1、Numpy共享内存的情况&#xff1a; array1 np.array([1, 2, 3]) array2 array1 array2[0] 0 # array1也会跟着改变&#xff0c;就地操作 array2 array2 * 2 # array2不会跟着改变&#xff0c;属于非就地操作&#xff0c;会创建一个新的地址给array2array2 array1…...

深度解析ONLYOFFICE协作空间2.5版本新功能

深度解析ONLYOFFICE协作空间2.5版本新功能 上个月&#xff0c;4月份&#xff0c;ONLYOFFICE协作空间推出了V2.5版本&#xff0c;丰富了一些很实用的新功能&#xff0c;之前已经有文章介绍过了&#xff1a; ONLYOFFICE 协作空间 2.5 现已发布https://blog.csdn.net/m0_6827469…...

Java I/O模型

引言 根据冯.诺依曼结构&#xff0c;计算机结构分为5个部分&#xff1a;运算器、控制器、存储器、输入设备、输出设备。 输入设备和输出设备都属于外部设备。网卡、硬盘这种既可以属于输入设备&#xff0c;也可以属于输出设备。 从计算机结构的视角来看&#xff0c;I/O描述了…...

【简单介绍下Sass,什么是Sass?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

bat脚本—快速修改网络配置

一、bat编写前注意事项 windows桌面用文本文件打开把批命令输入在文本框中&#xff0c;保存采用ANSI编码&#xff0c;后缀用.bat 可参考博客——bat脚本简介学习原理以及具体创建方式 &#xff08;文件扩展名位置&#xff09; 语法准确性&#xff1a;严格遵循 BAT 脚本的语…...

node.js漏洞——

一.什么是node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Google 的 V8 引擎&#xff0c;V8 引擎执行 Javascript 的速度非常…...

Qt多线程之moveToThread()函数

文章目录 一、moveToThread()执行后&#xff0c;当前代码线程没有改变。二、对象执行moveToThread()后&#xff0c;哪些成员加入了子线程1、创建对象时不指定父对象2、对属性对象使用moveToThread加入子线程作用域3、将属性对象的创建放到子线程中执行 三、C内存模型 在使用“继…...

【WEB前端2024】智体OS:poplang编程控制成本小千元的长续航robot机器人底盘(开源)

【WEB前端2024】智体OS&#xff1a;poplang编程控制成本小千元的长续航robot机器人底盘&#xff08;开源&#xff09; 前言&#xff1a;dtns.network是一款主要由JavaScript编写的智体世界引擎&#xff08;内嵌了three.js编辑器的定制版-支持以第一视角游览3D场馆&#xff09;…...

动态规划法学习

当然&#xff0c;让我们用更生活化的语言和一个实际的例子来解释动态规划&#xff0c;以及如何在实践中应用它。 动态规划通俗理解 想象一下&#xff0c;你是个水果摊老板&#xff0c;每天要决定订购多少苹果&#xff0c;目标是最大化利润。但苹果的价格每天波动&#xff0c;…...

前端技术回顾系列 10|TS 泛型在类和接口中的应用

在微信中阅读,关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注 我的公众号:CodeFit,为我的持续创作提供动力。 上文回顾:约束泛型(Generic Constraints) 上一篇文章我们回顾了 泛型 在 TypeScript 中的高级用法 —— 泛型…...

【Ardiuno】实验ESP32单片机自动配置Wifi功能(图文)

这里小飞鱼按照ESP32的示例代码&#xff0c;实验一下wifi的自动配置功能。所谓的自动配置&#xff0c;就是不用提前将wifi的名称和密码写到程序里&#xff0c;这样可以保证程序在烧录上传后&#xff0c;可以通过手机端的软件来进行配置&#xff0c;可以避免反复修改代码&#x…...

xml数据解析

XML Pull Parser&#xff08;使用Android的XmlPullParser&#xff09; 原理 Pull Parser允许应用程序代码从XML数据中“拉取”事件&#xff0c;而不是像SAX那样通过事件处理程序被“推送”。应用程序代码可以决定何时拉取下一个事件&#xff0c;如开始元素、结束元素或文本内…...

vite工程化搭建vue项目之自动按需导入

背景 当我们在使用vue3组合式开发的时候&#xff0c;大多数情况下我们的代码可能是这样的 <script setup lang"ts"> import { ref, reactive, toRefs, onMounted, computed } from vue; defineProps({}); </script><template><div></di…...

yolo-inference多后端+多任务+多算法+多精度模型 框架开发记录(python版)

先贴出github地址&#xff0c;欢迎大家批评指正&#xff1a;https://github.com/taifyang/yolo-inference 不知不觉LZ已经快工作两年了&#xff0c;由于之前的工作内容主要和模型部署相关&#xff0c;想着利用闲暇时间写一些推理方面的经验总结&#xff0c;于是有了这个工程。其…...

uniapp使用vue3语法构建自定义导航栏,适配小程序胶囊

具体代码 <template><view class"nav-wrapper-container" :style"height:navBarHeight px"><view class"nav-status-container" :style"height:navstatusBarHeight px;" /><view v-if"isCustom" clas…...

wpf、winform 监听USB拔插时触发

C# USB拔插监听 C#查找设备管理器中所有的 USB 设备 wpf、winform 监听USB拔插时触发 监听Windows USB 拔插时触发 private void MainWindow_Loaded(object sender, RoutedEventArgs e){FleckWebSocketConfig.OpenSocketConfig().GetAwaiter(); //websocket 服务开启用于监听W…...

C语言:指针笔试题

// 输入某一年的第几天&#xff0c;计算并输出它是这一年的第几月第几日。 /* 函数功能: 对给定的某一年的第几天&#xff0c;计算它是这一年的第几月第几日。 函数入口参数: 整形变量year,存储年&#xff1b; 整形变量yearDay,存储某一年的第几天&am…...

搜维尔科技:Movella旗下的Xsens在人形机器人开发中得到广泛应用

人形机器人的发展正在全球范围内受到广泛关注。作为机器人领域的重要分支&#xff0c;人形机器人因其具备高度仿真的外观和动作&#xff0c;以及更贴近人类的行为模式&#xff0c;有望逐渐成为人们日常生活和工业生产中的得力助手。在中国&#xff0c;这一领域的发展尤为引人注…...

k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用

文章目录 前言HPA简介简单理解详细解释HPA 的工作原理监控系统负载模式HPA 的优势使用 HPA 的注意事项应用类型 应用环境1.metircs-server部署2.HPA演示示例&#xff08;1&#xff09;部署一个服务&#xff08;2&#xff09;创建HPA对象&#xff08;3&#xff09;执行压测 前言…...

Mock数据

Mock 数据 引入依赖 <dependency><groupId>com.github.jsonzou</groupId><artifactId>jmockdata</artifactId><version>4.3.0</version></dependency>mock 数据 MockConfig mockConfig new MockConfig().sizeRange(1, 1);A.…...

【MySQL】性能分析

https://www.bilibili.com/video/BV1Kr4y1i7ru/?p78 查看执行频次 查看当前数据库的 INSERT, UPDATE, DELETE, SELECT 访问频次&#xff1a; SHOW GLOBAL STATUS LIKE Com_______; 或者 SHOW SESSION STATUS LIKE Com_______; 慢查询日志 慢查询日志记录了所有执行时间超过指…...

MyBatis插件机制

MyBatis插件机制是该框架提供的一种灵活扩展方式&#xff0c;允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。这种机制主要通过拦截器&#xff08;Interceptor&#xff09;实现&#xff0c;使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。 …...

NVIDIA Jetson Linux 35.3.1-开发指南-导言

原文地址&#xff1a;Welcome — Jetson Linux Developer Guide documentation (nvidia.com) 欢迎 本开发人员指南适用于 NVIDIA Jetson Linux版本 35.3.1 GA 。 最后更新: 2023年5月19日 NVIDIA Jetson是世界领先的边缘AI平台。其高性能、低功耗计算 深度学习 &#xff0c;…...

14. fastLED调色板

Color Palettes Functions and class definitions for color palettes.调色板的函数和类定义。 RGB palettes map an 8-bit value (0-255) to an RGB color. You can create any color palette you wish; a couple of starters are provided: ForestColors_p, CloudColors_p…...

bugku---misc---赛博朋克

1、下载附件解压之后是一个txt文本&#xff0c;查看文本的时候看到头部有NG的字样 2、把txt改为png后缀得到一张图片 3、binwalk没发现奇怪的地方&#xff0c;分离出来还是图片 4、stegslove分析&#xff0c;切换图片没有发现奇怪地方 5、将通道rgb置为0。出现了flag但是flag不…...

vue+elementplus模拟“山野愚人居”简单实现个人博客

目录 一、项目介绍 二、项目截图 1.项目结构图 2.项目首页 3.文章详情 4.留言 5.读者 三、源码实现 1.项目依赖package.json 2.项目启动 3.读者页面源码 四、总结 一、项目介绍 模仿原博客&#xff1a;山野愚人居 - 记录我的生活、所见、所闻、所想…… 本项目参考以…...

ComfyUI 完全入门:Refiner精炼器

在 SDXL基础模型1.0版本发布时&#xff0c;Stability AI 公司同时发布了一个名为SDXL Refiner的模型。这个Refiner模型是专门设计用来对基础模型生成的图像进行进一步优化和细化的&#xff0c;所以大家也经常称之为精炼器或者精修器。 Refiner模型的主要目的是提升图像的质量&…...

FastAPI操作关系型数据库

FastAPI可以和任何数据库和任意样式的库配合使用&#xff0c;这里看一下使用SQLAlchemy的示例。下面的示例很容易的调整为PostgreSQL&#xff0c;MySQL&#xff0c;SQLite&#xff0c;Oracle等。当前示例中我们使用SQLite ORM对象关系映射 FastAPI可以与任何数据库在任何样式…...