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

数据结构与算法——顺序表的实现以及增、插、删、查、印、毁

文章目录

  • 一、前言
  • 二、顺序表的概念与结构
    • 2.1顺序表的概念
    • 2.2顺序表的结构
  • 三、顺序表的分类
    • 3.1静态顺序表
      • 3.1.1静态顺序表的弊端
    • 3.2动态顺序表
      • 3.2.1动态顺序表的相对利弊
      • 3.2.2动态顺序表的增容方式
  • 四、顺序表的增、插、删、查、印、毁
    • 4.1 顺序表的增容
    • 4.2顺序表的尾插和头插
      • 4.2.1尾插
      • 4.2.2头插
      • 4.2.3指定位置插入
    • 4.3顺序表的尾删和头删
      • 4.3.1尾删
      • 4.3.2头删
      • 4.3.3指定位置删除
    • 4.4顺序表的查找
    • 4.5顺序表的打印
    • 4.6顺序表的销毁
  • 五、整体代码分析
    • 5.1头文件——SeList.h
      • 5.1.1头文件的作用
      • 5.1.2头文件代码展示
    • 5.2主体代码文件——SeList.c
    • 5.3测试文件——test.c
      • 5.3.1测试文件的作用
      • 5.3.2测试文件具体演示
        • 5.3.2.1尾插演示
        • 5.3.2.2头插演示
        • 5.3.2.3尾删演示
        • 5.3.2.4头删演示
        • 5.3.2.5指定位置插入演示
        • 5.3.2.6指定位置删除演示
        • 5.3.2.7元素查找演示
        • 5.3.2.8空间销毁演示
      • 5.3.3测试文件代码展示
  • 六、总结

一、前言

Hello啊,各位老铁们,今天的你是否在继续学习呢?up呢最近也是在学习数据结构的时候被其魅力冲昏了头脑,也是沉淀了大概10天左右吧?这10天你们有没有想念up呢?其实有时候,我们也是需要做减法,一味的累计而不去消化,最后可能被撑死。所以大家在学完知识过后,也要去沉淀沉淀哦。好啦我们回归今天的的主题,up今天给大家分享的是数据结构——顺序表。

二、顺序表的概念与结构

2.1顺序表的概念

顺序表:用一段物理地址连续的储存单元依次存储数据元素的线性结构,它的本质是用数组存储

2.2顺序表的结构

在这里插入图片描述

三、顺序表的分类

顺序表可以分为静态顺序表动态顺序表两类。

3.1静态顺序表

在这里插入图片描述

3.1.1静态顺序表的弊端

静态顺序表相当于有一种“一锤定音”的效果,那肯定也有着非常明显的弊端:空间给少了不够用,给大了容易造成浪费

3.2动态顺序表

刚刚呢up介绍了静态顺序表,那么从逆向思维的角度来看,是不是也存在动态顺序表呢?答案是肯定的。
在这里插入图片描述

3.2.1动态顺序表的相对利弊

动态顺序表在一定程度上减少了空间的浪费,但是这只是相对的,也不排除造成空间浪费的可能。

3.2.2动态顺序表的增容方式

顾名思义,动态顺序表那么它的内存空间大小肯定是动态的,在空间不够的同时回自动增容——成倍数增容,一般情况下是2倍增容。

四、顺序表的增、插、删、查、印、毁

4.1 顺序表的增容

在我们创建顺序表的时候,为了方便之后的使用,我们肯定会判断空间是否为满的情况,如果空间满了,那我们则需要实现增容。
画图展示:
在这里插入图片描述
代码展示
在这里插入图片描述

4.2顺序表的尾插和头插

4.2.1尾插

画图展示:
在这里插入图片描述

代码展示:
在这里插入图片描述

4.2.2头插

画图展示
在这里插入图片描述

在这里插入图片描述
代码展示
在这里插入图片描述

4.2.3指定位置插入

画图展示
在这里插入图片描述
在这里插入图片描述
代码展示:
在这里插入图片描述

4.3顺序表的尾删和头删

4.3.1尾删

画图展示·
在这里插入图片描述
代码展示:
在这里插入图片描述

4.3.2头删

画图展示
在这里插入图片描述
代码展示:
在这里插入图片描述

4.3.3指定位置删除

画图展示:
在这里插入图片描述
代码展示:
在这里插入图片描述

4.4顺序表的查找

查找方法:从顺序表第一个元素开始依次遍历,判断每一个元素和要查找的元素是否相同,相同则返回
代码展示:
在这里插入图片描述

4.5顺序表的打印

打印方法:从顺序表第一个元素开始,依次遍历,打印每一个元素
代码展示:
在这里插入图片描述

4.6顺序表的销毁

代码展示:
在这里插入图片描述

五、整体代码分析

OK啊up刚刚已经给大家讲解完毕了顺序表的全部情况。但是有的兄弟就问:“up up,我还是觉得这样有点太生硬了,有整体分析一波的步骤吗?"作为一个非常宠粉的up,我只能说:有点,兄弟,有的。那我们现在就来整体分析一波。
我们顺序表的代码为了方便并且清晰地实现,实际上需要创建3个文件,一个头文件(SeList.h)和两个源文件(Selist.c 和 test.c)。这个时候又有宝子疑问了——明明可以只写一个源文件就解决了,为什么还要分为3个文件呢?不急,请往下看。

5.1头文件——SeList.h

5.1.1头文件的作用

我们之前在C语言的学习中,已经非常清晰地了解到了头文件的作用,具体由以下7点:
1、声明接口和模块化代码;
2、减少重复代码;
3、提高代码复用性;
4、加强类型安全检查;
5、防止重复包含;
6、支持库功能调用;
7、组织项目结构。

5.1.2头文件代码展示

在这里插入图片描述

//头文件SeList.h
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SLDataType;
struct Sequelist
{SLDataType* arr;int size;int capacity;
};
typedef struct Sequelist SL;
void SLInit(SL* ps);// 初始化
void SLPrint(SL* ps);//打印
void SLDestroy(SL* ps);//销毁void SLPushBack(SL* ps, SLDataType x);//尾插
void SLPushFront(SL* ps, SLDataType x);//头插
void SLPopBack(SL* ps);//尾删
void SLPopFront(SL* ps);//头删
void SLInsert(SL* ps, int pos, SLDataType x);//指定位置插入
void SLErase(SL* ps, int pos);//指定位置删除
int SLFind(SL* ps, SLDataType x);//查找

5.2主体代码文件——SeList.c

主体代码就是我们程序中用来实现功能的代码。我们将所有实现功能的代码放在一起,也更加的条理清晰。
请添加图片描述

//主体文件SeList.c
#include "SeList.h"
void SLInit(SL* ps)//初始化
{ps->arr = NULL;ps->size = 0;ps->capacity = 0;
}
void SLCheckCapacity(SL* ps)//增容
{if (ps->size == ps->capacity)//空间已满{SLDataType newcapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;//三目操作符判断原本空间是否为空,是则增容4个空间,不是则进行两倍增容SLDataType* tmp = (SLDataType*)realloc(ps->arr, newcapacity * sizeof(SLDataType));if (tmp == NULL) //判断是否增容失败{perror("realloc fail!");exit(1);}ps->arr = tmp;ps->capacity = newcapacity;}
}
void SLPushBack(SL* ps, SLDataType x)//尾插
{assert(ps);SLCheckCapacity(ps);ps->arr[ps->size++] = x;
}
void SLPushFront(SL* ps, SLDataType x)//头插
{assert(ps);//断言不为空SLCheckCapacity(ps);//判断是否需要增容for (int i = ps->size;i > 0;i--)//元素往后移动{ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;++ps->size;
}
void SLPopBack(SL* ps)//尾删
{assert(ps && ps->size);--ps->size;
}
void SLPopFront(SL* ps)//头删
{assert(ps && ps->size);for (int i = 0;i< ps->size-1;i++)//从第二个元素开始依次往前移动{ps->arr[i] = ps->arr[i + 1];}--ps->size;
}
void SLInsert(SL* ps, int pos, SLDataType x)//指定位置插入
{assert(ps);assert(pos >= 0 && pos < ps->size);//前提条件判断SLCheckCapacity(ps);for (int i = ps->size;i > pos;i--)//从最后一个元素往后移,直到pos位置{ps->arr[i] = ps->arr[i - 1];}ps->arr[pos] = x;++ps->size;
}
void SLErase(SL* ps, int pos)//指定位置删除
{assert(ps);assert(pos >= 0 && pos < ps->size);//前提条件判断for (int i = pos;i < ps->size - 1;i++)//从pos位置后一个元素依次往前移动,直到最后一个元素{ps->arr[i] = ps->arr[i + 1];}--ps->size;
}
int SLFind(SL* ps, SLDataType x)//查找元素
{for (int i = 0;i < ps->size;i++)//依次遍历{if (ps->arr[i] == x)return i;   //找到则返回i}return -1;          //找不到则返-1
}
void SLDestroy(SL* ps)//销毁
{assert(ps);if (ps->arr)free(ps->arr);ps->arr = NULL;ps->size = 0;ps->capacity = 0;
}
void SLPrint(SL* ps)//打印
{for (int i = 0;i < ps->size;i++)//遍历打印{printf("%d ", ps->arr[i]);}printf("\n");
}

5.3测试文件——test.c

5.3.1测试文件的作用

最后就来到了我们的测试文件了,那么测试文件又有什么好处呢?
1、验证程序的正确性;
2、提高代码之路;
3、优化性能;
4、文档作用。

5.3.2测试文件具体演示

5.3.2.1尾插演示

在这里插入图片描述
在这里插入图片描述

5.3.2.2头插演示

在这里插入图片描述
在这里插入图片描述

5.3.2.3尾删演示

在这里插入图片描述
在这里插入图片描述

5.3.2.4头删演示

在这里插入图片描述

在这里插入图片描述

5.3.2.5指定位置插入演示

在这里插入图片描述
在这里插入图片描述

5.3.2.6指定位置删除演示

在这里插入图片描述
在这里插入图片描述

5.3.2.7元素查找演示

在这里插入图片描述
在这里插入图片描述

5.3.2.8空间销毁演示

在这里插入图片描述

5.3.3测试文件代码展示

//text.c
#include "SeList.h"
test01()
{SL s1;SLInit(&s1);//初始化//SLPushBack(&s1, 1);//SLPushBack(&s1, 2);//SLPushBack(&s1, 3);//SLPushBack(&s1, 4);//SLPrint(&s1);//尾插SLPushFront(&s1, 1);SLPushFront(&s1, 2);SLPushFront(&s1, 3);SLPushFront(&s1, 4);//SLPrint(&s1);//头插//SLPopBack(&s1);//SLPrint(&s1);//尾删//SLPopFront(&s1);//SLPrint(&s1);//SLInsert(&s1, 2, 5);//指定位置插入//SLPrint(&s1);//SLErase(&s1, 2);//指定位置删除//SLPrint(&s1);//int find = SLFind(&s1, 2);//元素查找//{//	if (find != -1)//		printf("找到了!\n");//	else//		printf("找不到!\n");//}//SLPrint(&s1);SLDestroy(&s1);//SLPrint(&s1);
}
int main()
{test01();return 0;
}

六、总结

以上就是关于数据结构——顺序表的全部知识。up在最后演示的部分可能注释的代码有一点多,也是麻烦各位宝子们在阅读的时候耐心一点。最后也希望各位宝子学有所获,精益求精。当然也希望大家可以一键三连,嘿嘿嘿。

时间的沉淀,会让努力变得更加珍贵。
在这里插入图片描述

相关文章:

数据结构与算法——顺序表的实现以及增、插、删、查、印、毁

文章目录 一、前言二、顺序表的概念与结构2.1顺序表的概念2.2顺序表的结构 三、顺序表的分类3.1静态顺序表3.1.1静态顺序表的弊端 3.2动态顺序表3.2.1动态顺序表的相对利弊3.2.2动态顺序表的增容方式 四、顺序表的增、插、删、查、印、毁4.1 顺序表的增容4.2顺序表的尾插和头插…...

环境 tensorflow ERROR: No matching distribution found for ai-edge-litert

提示&#xff1a;环境搭建 文章目录 前言多依赖安装 前言 提示&#xff1a;版本 之前文章 condajupyter 环境搭建 PyTorch 2.6 cpu 环境搭建 系统 &#xff1a;ubuntu 22.0 python &#xff1a;3.8 ERROR: No matching distribution found for ai-edge-litert PyTorch: sta…...

基于深度强化学习的智能机器人路径规划技术研究

在人工智能与机器人技术飞速发展的今天&#xff0c;智能机器人在工业、服务、物流等领域的应用日益广泛。路径规划作为智能机器人运动的核心技术之一&#xff0c;直接影响机器人的工作效率和安全性。近年来&#xff0c;深度强化学习&#xff08;Deep Reinforcement Learning, D…...

【ManiSkill】环境success条件和reward函数学习笔记

1. “PickCube-v1” info["success"]&#xff1a;用于指示任务是否成功完成 布尔型张量&#xff0c;在环境的evaluate()方法中计算并返回&#xff1a; "success": is_obj_placed & is_robot_static这确保了机器人不仅能将物体准确放置在目标位置&am…...

畅捷通T+与吉客云数据集成案例解析

畅捷通T与吉客云的高效数据集成案例分享 在企业信息化系统中&#xff0c;数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将畅捷通T中的采购入库单&#xff08;红字&#xff09;数据无缝集成到吉客云中&#xff0…...

Vue 项目中使用$refs来访问组件实例或 DOM 元素,有哪些注意事项?

大白话Vue 项目中使用$refs来访问组件实例或 DOM 元素&#xff0c;有哪些注意事项&#xff1f; 在 Vue 项目里&#xff0c;$refs 是个超实用的工具&#xff0c;它能让你直接访问组件实例或者 DOM 元素。不过使用的时候&#xff0c;有一些地方可得注意&#xff0c;下面咱就详细…...

Docker Compose 基础知识

一. Docker Compose 引言 Docker Compose 是 Docker 官方提供的一个用于定义和运行多容器 Docker 应用程序的工具。它通过一个yaml格式的配置文件&#xff08;通常命名为 docker-compose.yml &#xff09;&#xff0c;文件中定义多个服务、网络和卷&#xff0c;从而简化复杂应…...

科技赋能|ZGIS综合管网智能管理平台守护地下城市生命线

地下管网作为城市公共安全的重要组成部分&#xff0c;担负着城市的信息传递、能源输送、排涝减灾等重要任务&#xff0c;是维系城市正常运行、满足群众生产生活需要的重要基础设施&#xff0c;是城市各功能区有机连接和运转的维系&#xff0c;因此&#xff0c;也被称为城市“生…...

EXCEL报错:无法共享此工作薄,因表包含excel表或xml映射的解决方法

在分享工作薄是&#xff0c;如果出现了“无法共享此工作薄&#xff0c;因表包含excel表或xml映射”的报错&#xff0c;那么有两个原因&#xff1a; 1.包含Excel表格&#xff0c;这个也是相对比较常见的原因。 首先选中表格。如果你不知道表的位置在哪&#xff0c;那么在Excel左…...

Go 语言标准库中path模块详细功能介绍与示例

Go语言的 path 模块提供了处理斜杠分隔路径的通用方法&#xff0c;适用于跨平台路径操作&#xff08;如 URL 路径或 Unix 风格路径&#xff09;。以下是 path 模块的核心方法及示例说明&#xff1a; 1. path.Base 返回路径的最后一个元素&#xff08;类似 Unix 的 basename 命…...

在Vue 3 + TypeScript + Vite 项目中安装和使用 SCSS

在Vue 3 TypeScript Vite 项目中安装和使用 SCSS 1、安装 SCSS 的相关依赖 npm install sass --save-dev2、配置 Vite 对于 Vue 3&#xff0c;Vite 已经内置了对 SCSS 的支持&#xff0c;通常不需要额外的配置。但是&#xff0c;如果需要自定义配置&#xff0c;可以在路径…...

洛谷题单1-B2005 字符三角形-python-流程图重构

题目描述 给定一个字符&#xff0c;用它构造一个底边长 5 5 5 个字符&#xff0c;高 3 3 3 个字符的等腰字符三角形。 输入格式 输入只有一行&#xff0c;包含一个字符。 输出格式 该字符构成的等腰三角形&#xff0c;底边长 5 5 5 个字符&#xff0c;高 3 3 3 个字符…...

实现金蝶与钉钉无缝对接以高效管理银行账号信息

【资料】金蝶&钉钉—银行账号 在企业信息化管理中&#xff0c;数据的高效集成和实时同步至关重要。本文将分享一个实际的系统对接集成案例&#xff1a;如何将金蝶云星空的数据集成到钉钉平台&#xff0c;实现银行账号信息的无缝对接。 本次集成方案【资料】金蝶&钉钉…...

正则表达式-万能表达式

1、正则 正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找 出满足你想要的格式的句子. {“basketId”: 0, “count”: 1, “prodId”: #prodId#, “shopId”: 1, “skuId”: #skuId#} #prodId# re相关的文章&#xff1a; https://www.cnblogs.com/Simple-S…...

ComfyUi教程之阿里的万象2.1视频模型

ComfyUi教程之阿里的万象2.1视频模型 官网Wan 2.1 特点 一、本地安装1.1克隆仓库1.2 安装依赖&#xff08;1.3&#xff09;下载模型&#xff08;1.4&#xff09;CUDA和CUDNN 二、 使用体验&#xff08;2.1&#xff09;官方例子&#xff08;2.2&#xff09;执行过程&#xff08;…...

如何在一个图片上添加另外一个图片

如果你使用的windows10 系统&#xff0c;可以使用系统自带的画图工具 1. 打开windows搜索&#xff0c; 画图工具 2. 在画图软件内&#xff0c; ctrlc 复制图片 &#xff0c; ctrlv粘贴图片 3. 调整想要粘贴的图片&#xff0c;到上图汇总&#xff0c;最后保存&#xff0c;或者…...

【面试题】在 CSS 中,实现一个 div 中的子 div 水平垂直居中

1. 使用 Flexbox 特点&#xff1a;简单、直观&#xff0c;现代浏览器支持良好。 代码&#xff1a; css .parent {display: flex;justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */height: 200px; /* 父容器需有高度 */ } .child {…...

Electron 项目开机自启动

app.setLoginItemSettings 与 auto-launch 对比分析 一、稳定性对比 1. app.setLoginItemSettings 优点&#xff1a;作为Electron官方API&#xff0c;有官方维护和支持缺点&#xff1a; 在某些Windows版本上存在已知问题部分Windows 10/11更新后可能失效在macOS权限更严格的…...

sql基础

本文多数内容属于个人基于网上资料的理解&#xff0c;如果有问题请告知修改&#xff0c;十分感谢 定义 百度百科&#xff1a;SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言&#xff0c;这种语言具有交互性特点&#xff0c;能为用户提供极…...

【C++数据库】SQLite3数据库连接与操作

注意:本文代码均为C++20标准下实现 一、SQLite3库安装 1.1 安装库文件 【工具】跨平台C++包管理利器vcpkg完全指南 vcpkg install sqlite3# 集成至系统目录,之前执行过此命令的无需再次执行 vcpkg integrate install1.2 验证代码 在VS2022中新建控制台项目,测试代码如下…...

数据结构——Map和Set

1. 搜索树 1. 概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它可以是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树: • 若它的左⼦树不为空&#xff0c;则左⼦树上所有节点的值都⼩于根节点的值 • 若它的右⼦树不为空&#xff0c;则右⼦树上所有节点的值都⼤于根节点的值…...

zsh安装以及安装配置oh-my-zsh安装zsh-autosuggestionszsh-syntax-highlighting

下面是安装 zsh 及配置 oh‑my‑zsh 的详细步骤&#xff0c;适用于 Linux 和 macOS 环境&#xff1a; 1. 安装 zsh 1.1 在 macOS 上安装 zsh macOS 通常预装了 zsh&#xff0c;但建议升级到最新版本。你可以通过 Homebrew 来安装最新版&#xff1a; brew install zsh安装完成…...

VMware 安装 Ubuntu 实战分享

VMware 安装 Ubuntu 实战分享 VMware 是一款强大的虚拟机软件&#xff0c;广泛用于多操作系统环境的搭建。本文将详细介绍如何在 VMware 中安装 Ubuntu&#xff0c;并分享安装过程中的常见问题及解决方法。 1. 安装前的准备工作 (1) 系统要求 主机操作系统&#xff1a;Windo…...

【SpringCloud】Eureka的使用

3. Eureka 3.1 Eureka 介绍 Eureka主要分为两个部分&#xff1a; EurekaServer: 作为注册中心Server端&#xff0c;向微服务应用程序提供服务注册&#xff0c;发现&#xff0c;健康检查等能力。 EurekaClient: 服务提供者&#xff0c;服务启动时&#xff0c;会向 EurekaS…...

Redis:List 类型 内部实现、命令及应用场景

Redis 中的 List&#xff08;列表&#xff09;类型是一种有序的数据结构&#xff0c;它可以存储多个字符串元素&#xff0c;并且这些元素按照插入顺序排列。可以将它理解为一个双向链表&#xff0c;支持在链表的两端进行快速的插入和删除操作。它允许元素重复&#xff0c;并且可…...

Python 字符串正则表达式详解

Python 字符串正则表达式详解 一、正则表达式核心语法 元字符含义正确示例与说明常见错误修正.匹配任意字符&#xff08;换行符除外&#xff09;a.b → 匹配"acb"、“a1b”不匹配换行符&#xff08;需用re.S模式&#xff09;^匹配字符串开头^Hello → 匹配以"H…...

重试机制之指针退避策略算法

一、目的&#xff1a;随着重试次数增加&#xff0c;逐步延长重连等待时间&#xff0c;避免加重服务器负担。 二、计算公式&#xff1a; 每次重试的延迟时间 初始间隔 (退避基数 ^ 重试次数) 通常设置上限防止等待时间过长。 const delay Math.min(initialDelay * Math.pow…...

pyqt第一个窗口程序

文章目录 官方文档相手动创建窗口程序designer创建ui布局 官方文档相 https://doc.qt.io/qtforpython-6/ 手动创建窗口程序 import sys # 导入系统模块&#xff0c;用于获取命令行参数和系统功能 from PySide6.QtWidgets import QApplication, QLabel # 导入Qt组件&#x…...

【蓝桥杯】单片机设计与开发,PWM

一、PWM概述 用来输出特定的模拟电压。 二、PWM的输出 三、例程一&#xff1a;单片机P34引脚输出1kHZ的频率 void Timer0Init(void);unsigned char PWMtt 0;void main(void) {P20XA0;P00X00;P20X80;P00XFF;Timer0Init();EA1;ET01;ET11;while(1);}void Timer0Init(void) //1…...

CSS学习笔记5——渐变属性+盒子模型阶段案例

目录 通俗易懂的解释 渐变的类型 1、线性渐变 渐变过程 2、径向渐变 如何理解CSS的径向渐变&#xff0c;以及其渐变属性 通俗易懂的解释 渐变属性 1. 形状&#xff08;Shape&#xff09; 2. 大小&#xff08;Size&#xff09; 3. 颜色停靠点&#xff08;Color Sto…...

频谱分析仪的最大保持功能

专门应用于例如遥控器之类的&#xff0c;按一下&#xff0c;一瞬间出现的信号的测量。 把仪器连接天线&#xff0c;观测空间中的一些信号&#xff0c;比如WIFI的信号&#xff0c;我们可以看到仪器接收到的信号其实是一直变化的&#xff0c;并不是每一次扫描都能扫到我们想要的这…...

权值线段树算法讲解及例题

算法思想 普通的线段树一般是求区间之和或区间最值&#xff0c;所以这些线段树的每个节点的下标是原数组中的区间范围&#xff0c;每个节点存的是区间和或最值&#xff0c;而权值线段树的每个节点的下标是数组中元素的值&#xff0c;而权值线段树每个节点存的是当前元素出现的…...

3.26刷题(矩阵模拟专题)

1.59. 螺旋矩阵 II - 力扣&#xff08;LeetCode&#xff09; //方法一&#xff1a;变换方向法 class Solution { public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> dirct {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};vector<vect…...

深入解析 JSON-RPC:从基础到高级应用(附调用示例)

在当今的软件开发领域&#xff0c;远程过程调用&#xff08;RPC&#xff09;技术是实现分布式系统间通信的关键手段之一。JSON-RPC&#xff0c;作为一种基于 JSON 数据格式的轻量级 RPC 协议&#xff0c;因其简洁性和高效性而备受青睐。本文将全面深入地探讨 JSON-RPC 的核心概…...

MAC环境给docker换源

2025-03-28 MAC环境给docker换源 在官网下载docker ,dmg 文件 参考&#xff1a; https://blog.csdn.net/qq_73162098/article/details/145014490 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},&q…...

Ollama及HuggingFace路径环境变量设置

日常经常用到这俩的一些环境变量&#xff0c;特记录下来&#xff0c;如有错误&#xff0c;还请指正。 1. Ollama路径环境变量设置 Ollama 模型路径变量名为OLLAMA_MODELS&#xff0c;设置示例&#xff1a; 变量名示例OLLAMA_MODELS C:\Users\Administrator\.ollama\models D…...

Redis | 基于 Redis 实现机器列表 Token 缓存的 Java 实现

关注&#xff1a;CodingTechWork 引言 在分布式系统中&#xff0c;Token 缓存是一种常见的需求。它可以帮助我们快速验证用户身份&#xff0c;减少对数据库的频繁访问&#xff0c;提高系统的性能和响应速度。本文将介绍如何使用 Redis 来实现机器列表的 Token 缓存&#xff0c…...

Linux\CentOS解决OpenSSH和Nginx安全漏洞

前言 由于有些服务器需要对公网提供服务、客户对于服务器安全比较重视&#xff0c;需要公司提供服务器安全报告。大多数服务器经过漏洞扫描之后、会出现很多软件低版本的漏洞&#xff0c;此时就需要升级软件的版本来解决这些漏洞问题。本篇文章记录升级软件过程。 漏洞编号漏…...

ubuntu22.04 ROS2humble 路径文件

ROS2humble 路径文件 /opt/ros/humble/include/opt/ros/humble/lib/opt/ros/humble/share 下载ros2之后会有下面的文件&#xff0c;在/opt/ros/humble下 /opt/ros/humble/include C/C 头文件&#xff08;.h, .hpp&#xff09; /opt/ros/humble/lib 作用: 存放 编译生成的二…...

zookeeper部署教程

在Linux系统中离线安装并配置ZooKeeper&#xff0c;可按以下步骤操作&#xff1a; 1. 准备安装包和依赖 下载ZooKeeper&#xff1a;在有网络的环境下&#xff0c;前往Apache ZooKeeper官网下载所需的稳定版本&#xff0c;例如zookeeper-3.8.2.tar.gz。准备JDK&#xff1a;Zoo…...

生成信息提取的大型语言模型综述

摘要 信息提取&#xff08;IE&#xff09;旨在从简单的自然语言文本中提取结构知识。最近&#xff0c;生成型大型语言模型&#xff08;LLMs&#xff09;在文本理解和生成方面表现出了显著的能力。因此&#xff0c;已经提出了许多基于生成范式将LLM集成到IE任务中的工作。为了对…...

霸王茶姬小程序(2025年1月版)任务脚本

脚本用于自动执行微信小程序霸王茶姬的日常签到和积分管理任务。 脚本概述 脚本设置了定时任务(cron),每天运行两次,主要用于自动签到以获取积分,积分可以用来换取优惠券。 核心方法 constructor:构造函数,用于初始化网络请求的配置,设置了基础的 HTTP 请求头等。 logi…...

Maven中为什么有些依赖不用引入版本号

先给出一个例子&#xff1a; <parent><artifactId>sky-take-out</artifactId><groupId>com.sky</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>sky-s…...

机器学习——集成学习框架(GBDT、XGBoost、LightGBM、CatBoost)、调参方法

一、集成学习框架 对训练样本较少的结构化数据领域&#xff0c;Boosting算法仍然是常用项 XGBoost、CatBoost和LightGBM都是以决策树为基础的集成学习框架 三个学习框架的发展是&#xff1a;XGBoost是在GBDT的基础上优化而来&#xff0c;CatBoost和LightGBM是在XGBoost的基础上…...

第十二章——位运算

按位的与& 若x的第i位和y的第i位都是1&#xff0c;那么&#xff08;x&y&#xff09;1&#xff0c;否则&#xff08;x&y&#xff09; 0 应用&#xff1a;希望让某一位或某些位为0 。取一个数中的一段。 按位的或| 若x的第i位1或y的第i位1&#xff0c;那么&…...

陪伴就诊 APP 功能架构:如何通过特定模块筛选优秀陪诊师

在当今社会&#xff0c;随着人们对医疗服务品质需求的提升&#xff0c;陪诊师这一职业应运而生。然而&#xff0c;市场上陪诊师众多&#xff0c;水平参差不齐&#xff0c;如何筛选出优秀的陪诊师成了大家关注的焦点。而陪伴就诊 APP 的等级功能&#xff0c;为我们提供了一个有效…...

UI产品经理基础(六):如何解决用户的质疑?

在需求调查中遇到用户质疑“不专业”或“不了解需求”&#xff0c;本质上是用户对产品经理的信任缺失或沟通鸿沟导致的。要化解这种质疑&#xff0c;需从专业能力展示、沟通方式优化、用户参与感提升三个维度切入&#xff0c;结合具体场景采取针对性策略。以下是系统化的解决方…...

【江协科技STM32】BKP备寄存器RTC实时时钟(学习笔记)

BKP备寄存器 BKP简介 BKP&#xff08;Backup Registers&#xff09;备份寄存器BKP可用于存储用户应用程序数据。当VDD&#xff08;2.0~3.6V&#xff09;电源被切断&#xff0c;他们仍然由VBAT&#xff08;1.8~3.6V&#xff09;维持供电。当系统在待机模式下被唤醒&#xff0…...

Flutter项目之table页面实现

目录&#xff1a; 1、首页页面index.dart&#xff08;首页table页面&#xff09;searchbar.dart (搜索页面)common_swiper.dart (轮播图)index_navigation.dart (导航区域)index_navigatorItem_list.dart (数组构造) 2、房屋推荐index_recommond.dart (房屋推荐区域)IndexRecom…...

Stable Virtual Camera 重新定义3D内容生成,解锁图像新维度;BatteryLife助力更精准预测电池寿命

在数字内容创作的激烈竞争中&#xff0c;Stability AI 正站在命运的十字路口。这家曾以 Stable Diffusion 引爆图像生成革命的公司&#xff0c;却因上层管理问题陷入了危机。近期&#xff0c;Stability AI 推出了 Stable Virtual Camera 模型&#xff0c;不知能否以一记重拳打破…...