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

顺序表——功能实现

 702e764bf4974ad29bf6997b3256d93c.jpeg

✨✨欢迎👍👍点赞☕️☕️收藏✍✍评论

个人主页:秋邱'博客

所属栏目:C语言

(感谢您的光临,您的光临蓬荜生辉)

目录

1.0 前言

2.0 线性表

2.1 顺序表

2.2 顺序表的分类

2.3 顺序表功能的实现

2.3.1 准备前奏

2.3.2 初始化

2.3.3 打印

2.3.4 销毁空间

2.3.5 申请空间

2.3.6 头部插入

 2.3.7 删除头部数据

2.3.8 尾部插入

2.3.9 删除尾部数据

2.3.10 指定位置之前插入

 2.3.11 指定位置之前删除

2.3.12 寻找指定数字

3.0 完整代码

3.1 SeqList.h

3.2 SeqList.c

3.3 test.c


 

 

1.0 前言


学习顺序表之前,我们需要具备三方面的知识点。指针,结构体,动态内存的开辟。

2.0 线性表

线性表是数据结构中的一种基本形式,是 n 个数据元素的有限序列。线性表中的数据元素之间有序且连续,可以用一组地址连续的存储单元存储。

线性表可以表示一维数组,也可以表示一串具有相同类型的元素。线性表中的元素可以是数字、字符、对象等。线性表有两种基本形式:顺序表和链表

本章主要讲的是顺序表。

2.1 顺序表

顺序表和数组的区别:顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接⼝。

2.2 顺序表的分类

开辟数组我们有两个方法:

1.静态内存开辟,开辟一个固定的空间。如:int arr[10]={0};

2.动态内存开辟,确定大小之后再去申请空间。如:int *arr

同理,顺序表分类也有两种:

1.静态顺序表定义

struct SeqList
{int arr[100];//定长数组int size;//顺序表当前有效的数据个数
};

2.动态顺序表定义

struct SeqList
{int* arr;int size;//有效的数据个数int capcacity;//空间大小
}

这两种哪一个好呢?

举个例子:
某app原定只能储存100万的用户信息,但随着app的爆火,越来越多的人注册使用这app,但这个后台只能储存100万,剩下的数据全部丢失,这将是一次重大的事故。

若动态数组,那么我们就能够在空间不够的情况下,再一次进行开辟空间,代码更加灵活。

2.3 顺序表功能的实现

开始之前我们需要创建三个文件,分别是

test.c             顺序表结构声明,顺序表的方法。

SeqList.h      实现顺序表的方法。

SeqList.c      对实现的顺序表进行测试

在之前我们就讲过了多文件的好处,这里就不在重复了。

2.3.1 准备前奏

顺序表的实现需要创建一个动态顺序表。其中包括了有效数据的大小size,已经整个动态空间的大小。

SeqList.h

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
typedef int SLDataType;//将int重命名,方便后续其他类型的修改
//动态顺序表
typedef struct SeqList 
{SLDataType* arr;//指向动态开辟的数组int size;       //有效数据个数int capacity;   //空间大小
}SL;//typedef struct SeqList Sl;

text.c

#define _CRT_SECURE_NO_WARNINGS
#include"SeqList.h"
int main()
{SL s1;//创建变量s1return 0;
}

 SeqList.c

#include"SeqList.h"

 接下来就能进入我们函数的实现了。

2.3.2 初始化

//初始化
//错误示范
void SLInit(SL ps)
{ps.arr = NULL;ps.capacity = ps.size = 0;
}//正确代码
void SLInit(SL * ps)
{ps->arr = NULL;ps->capacity = ps->size = 0;
}

 刚刚开始的时候,数组空间还没开辟所以是0;arr也还没有数据所以是空。

坑:错误的代码中采用了传值,而传值实际是是实参,拷贝一份给形参。还没进行初始化没有值。

所以这里要用传地址,用指针来接收。

2.3.3 打印

void SLPrint(SL s)
{for (int i = 0; i < s.size; i++){printf("%d ", s.arr[i]);}printf("\n");
}

完成的函数,要验证它它能不能符合要求,就要打印出来,方便观察。

2.3.4 销毁空间

动态内存用完之后,我们要进行销毁。且将ps置为空,将size和capacity赋为0。

有借有还,再借不难。  

void SLDestroy(SL * ps)
{if (ps->arr)//等价于if(ps->arr != NULL){free(ps->arr);}ps->arr = NULL;ps->size = ps->capacity = 0;
}

 

2.3.5 申请空间

//申请空间的判断
void SLCheckCapacity(SL* ps)
{if (ps->capacity == ps->size){int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;SLDataType* tmp = (SLDataType*)realloc(ps->arr, newCapacity * sizeof(SLDataType));if (tmp == NULL){perror("realloc error");exit(1);}//空间申请成功ps->capacity = newCapacity;ps->arr = tmp;}
}

由于空间的申请不止一个函数需要用到,在这就单独给它封装函数,方便后续的使用。

首先,要判断arr数组空间内存的大小。

如果数组的空间容量Capacity不等于有效数据size,则跳出函数。

相反,相等的情况下,开始开辟空间,创建一个变量newCapacity来储存新的空间容量大小,再创建tmp来存放首元素的地址(防止realloc开辟失败,将原来的arr置为NULL)。并且判断tmp是否开辟成功。

最后将newCapacity赋给capacity,将tmp赋值给arr。

2.3.6 头部插入

//头插
void SLPushFront(SL* ps, SLDataType x)
{assert(ps);for (int i = ps->size ; i > 0; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;ps->size++;
}

 头部插入之前要满足两个条件:

  • 传入指针不能为空。
  • 判断是否需要申请空间。

 因为这里是头部插入,所以需要讲数组内的数据往后移一位。然后将新的数据插入数组下标为0的地址。最后对size进行+1即可。

cf1656275fd443af8c6281d3aa8afa8a.png

 2.3.7 删除头部数据

void SLPopFront(SL* ps)
{assert(ps);for (int i = 0; i > ps->size-1; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}

删除头部数据之前,首先要assert断言传入的指针是不是空指针。删除头部数据只需要将后一位往前移,循环往复,最后size进行-1。

2.3.8 尾部插入

void SLPushBack(SL*ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);ps->arr[ps->size++] = x;}

尾插相比于头插会简单点,但同样也是需要断言,看传入的指针是否为空。在末尾插入数据需要在size处插入新的数据,然后对size进行+1即可。

2.3.9 删除尾部数据

void SLPopBack(SL* ps)
{assert(ps);--ps->size;
}

 同样尾删也是需要断言,看传入的指针是否为空。然后厎size-1就行了,有效数据减一,不会影响其他功能。

2.3.10 指定位置之前插入


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--){ps->arr[i] = ps->arr[i - 1];}ps->arr[pos] = x;ps->size++;
}
//pos 表示数组的下标值。

 掌握了头插尾插,那么在指定位置之前插入数据就不难,这其实就是头插和尾插的结合。

在插入之前,要用assert断言传入指针是否为空。pos只能在0~size之间插入数据,当传入的数据不是这个范围,程序就会出错,所以这里也需要用assert来断言assert(pos >= 0 && pos <= ps->size)。

2bc037074be746a19b33953c99c054d1.png

 假设在下标为2的位置插入新的数据,就需要讲下标为2的数据移到后面,从后往前移(防止数据被覆盖),然后对size进行+1。

中间的值会了,插入两边就是头插和尾插,前面已经讲过了,这里就都是一样的。

 2.3.11 指定位置之前删除

void SLErase(SL* ps, int pos)
{assert(ps);assert(pos >= 0 && pos < ps->size);for (int i = pos; i < ps->size - 1; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}

在删除数据之前,要用assert断言传入指针是否为空。pos只能在0~size之间删除数据,但size指向的地址是没有数据的,当传入的数据不是这个范围,程序就会出错,所以这里也需要用assert来断言assert(pos >= 0 && pos < ps->size)。

834c6c9d4811420cba6161914155beef.png

接下来就是删除数据的部分,假设删除数组下标为2内容,只需要将后面的的数组往前放,循环往复,最后对size进行-1。

2.3.12 寻找指定数字

int SLFind(SL* ps, SLDataType x)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x){//找到啦return i;}//没有找到return -1;}
}

寻找指定数据,对传入的地址进行断言,然后用一个for循环来寻找数组的值,再用if-else来判断,若ps->arr[i] == x则返回的值。相反则返回-1。

3.0 完整代码

3.1 SeqList.h

#pragma once
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
typedef int SLDataType;
//动态顺序表
typedef struct SeqList 
{SLDataType* arr;int size; //有效数据个数int capacity; //空间大小
}SL;//typedef struct SeqList Sl;
//开辟空间
void SLCheckCapacity(SL* ps);//初始化
void  SLInit(SL* ps);//打印
void SLPrint(SL s);//头插
void SLPushFront(SL* ps, SLDataType x);//尾插
void SLPushBack(SL* ps, SLDataType x);//头删
void SLPopFront(SL* ps);//尾删
void SLPopBack(SL* ps);//指定位置之前插入
void SLInsert(SL* ps, int pos, SLDataType x);//指定位置之前删除
void SLErase(SL* ps, int pos);//查找数据
int SLFind(SL* ps, SLDataType x);//销毁
void SLDestroy(SL* ps);

3.2 SeqList.c

#define _CRT_SECURE_NO_WARNINGS#include"SeqList.h"
//申请空间的判断
void SLCheckCapacity(SL* ps)
{if (ps->capacity == ps->size){int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;SLDataType* tmp = (SLDataType*)realloc(ps->arr, newCapacity * sizeof(SLDataType));if (tmp == NULL){perror("realloc error");exit(1);}//空间申请成功ps->capacity = newCapacity;ps->arr = tmp;}
}
//初始化
void SLInit(SL* ps)
{ps->arr = NULL;ps->capacity = ps->size = 0;
}//打印
void SLPrint(SL s)
{for (int i = 0; i < s.size; i++){printf("%d ", s.arr[i]);}printf("\n");
}//销毁
void SLDestroy(SL * ps)
{if (ps->arr)//等价于if(ps->arr != NULL){free(ps->arr);}ps->arr = NULL;ps->size = ps->capacity = 0;
}//头插
void SLPushFront(SL* ps, SLDataType x)
{assert(ps);for (int i = ps->size ; i > 0; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;ps->size++;
}//尾插
void SLPushBack(SL*ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);ps->arr[ps->size++] = x;}//头删
void SLPopFront(SL* ps)
{assert(ps);ps->arr[0] = -1;for (int i = 0; i > ps->size-1; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}//尾删
void SLPopBack(SL* ps)
{assert(ps);--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--){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++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}//寻找指定数字
int SLFind(SL* ps, SLDataType x)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x){//找到啦return i;}//没有找到return -1;}
}

3.3 test.c

void SLTest01()
{SL sl;SLInit(&sl);//增删查改操作//测试尾插SLPushBack(&sl, 1);SLPushBack(&sl, 2);SLPushBack(&sl, 3);SLPushBack(&sl, 4);SLPrint(sl);//1 2 3 4//SLPushFront(&sl, 5);//SLPushFront(&sl, 6);//测试尾删SLPopBack(&sl);SLPrint(sl);//1 2 3 SLPopBack(&sl);SLPrint(sl);SLPopBack(&sl);SLPrint(sl);SLPopBack(&sl);SLPrint(sl);SLPopFront(&sl);SLPrint(sl);//...........SLDestroy(&sl);
}void SLTest02()
{SL sl;SLInit(&sl);SLPushBack(&sl, 1);SLPushBack(&sl, 2);SLPushBack(&sl, 3);SLPushBack(&sl, 4);SLPrint(sl);//1 2 3 4//测试指定位置之前插入数据//SLInsert(&sl, 1, 99);//SLInsert(&sl, sl.size, 88);//测试删除指定位置的数据//SLErase(&sl, 1);//SLPrint(sl);//1 3  4//测试顺序表的查找int find = SLFind(&sl, 40);if (find < 0){printf("没有找到!\n");}else {printf("找到了!下标为%d\n",find);}SLDestroy(&sl);
}int main()
{//SLTest01();//SLTest02();ContactTest01();return 0;
}

 

 

 

相关文章:

顺序表——功能实现

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 &#xff08;感谢您的光临&#xff0c;您的光临蓬荜生辉&#xff09; 目录 1.0 前言 2.0 线性表 2.1 顺序表 2.2 顺序表的分类 2.3 顺序表功能的实现…...

达梦导出工具dexp

基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例dexp 逻辑导出 dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非…...

Ubuntu 22.04安装新硬盘并启动时自动挂载

方法一 要在Ubuntu 22.04系统中安装一个新硬盘、对其进行格式化并实现启动时自动挂载&#xff0c;需要按以下步骤操作&#xff1a; 1. 安装硬盘 - 确保你的硬盘正确连接到计算机上&#xff08;涉及硬件安装&#xff09;。 2. 发现新硬盘 - 在系统启动后&#xff0c;打开终端…...

Mybatis中sqlSession.getMapper背后的原理

在通过MyBatis操作数据库之前我们一定先通过Session对象获取指定Mappper接口的代理对象。如下代码所示&#xff1a; public class UserMapper{Select(value"SELECT * FROM user")public List<User> findAll(); }public static void main(String [] args){Conf…...

[环境配置]conda 64位安装32位python

进入32模式 set CONDA_FORCE_32BIT1创建环境 conda create --name yourEnv python3.8退出32模式 set CONDA_FORCE_32BIT0ok...

某虚假交友APP(信息窃取)逆向分析

应用初探 在群里水群的时候 群u发了一个交友APP 于是拿来分析一下 可以看到应用打开后又一个登录的界面 需要用户输入手机号与验证码进行登录 #在线云沙箱分析 将APK放入某安信云沙箱中分析 提示应用请求了过多的敏感权限 逆向分析 直接拖入Jadx分析 好在程序没有加固 也没…...

基于FPGA的按键消抖

按键工作原理 当KEY1按下时&#xff0c;整条电路就会导通&#xff0c;这个时候KEY1就是低电平&#xff1b; 当KEY1松开时&#xff0c;整条电路就会断开&#xff0c;这个时候KEY1就是高定平&#xff1b; 我们可以通过判断KEY1的高低电平来判断按键是否被按下。 为什么按键消…...

1.网络编程-网络协议

目录 网络编程是什么 网络编程三要素 OSI七层网络模型 TCP/IP五层模型 SSL/TLS 是哪层协议 网络编程是什么 网络编程是计算机科学中的一个重要领域&#xff0c;它涉及到编写能够在网络环境中进行通信的程序。网络编程的核心目标是使不同的设备能够通过网络交换信息&#…...

代码+视频,手动绘制logistic回归预测模型校准曲线(Calibration curve)(2)

校准曲线图表示的是预测值和实际值的差距&#xff0c;作为预测模型的重要部分&#xff0c;目前很多函数能绘制校准曲线。 一般分为两种&#xff0c;一种是通过Hosmer-Lemeshow检验&#xff0c;把P值分为10等分&#xff0c;求出每等分的预测值和实际值的差距 另外一种是calibrat…...

金融数据_Scikit-Learn决策树(DecisionTreeClassifier)实例

金融数据_Scikit-Learn决策树(DecisionTreeClassifier)实例 逻辑回归: 逻辑回归常被用于二分类问题, 比如涨跌预测。你可以将涨跌标记为类别, 然后使用逻辑回归进行训练。 决策树和随机森林: 决策树和随机森林是用于分类问题的强大模型。它们能够处理非线性关系, 并且对于特征…...

bash的login shell与non-login shell,以及各自的初始化过程

识别login shell与non-login shell login shell 可能是以-开头的 [almalinuxVM-AlmaLinux8-tmpl-wanlinwang ~]$ echo $0 -bash # "-" is the first character. Therefore, this is a login shell.或者以--login启动的bash [almalinuxVM-AlmaLinux8-tmpl-wanlinw…...

为什么苹果 Mac 电脑需要使用清理软件?

尽管 Apple Mac 电脑因其卓越的性能、简洁高效的 macOS 操作系统及独特的美学设计备受全球用户青睐&#xff0c;但任何电子设备在长期使用后都难以避免面临系统资源日渐累积的问题。其中一个重要维护需求在于&#xff0c;随着使用时间的增长&#xff0c;Mac电脑可能会由于系统垃…...

33. UE5 RPG使用增强输入激活GameplayAbility(三)

在前面的文章&#xff0c;我们实现了使用GameplayTag和InputAction的对应绑定的数据&#xff0c;并且添加到了增强输入映射的上下文中&#xff0c;实现了通过按键打印对应的GameplayTag&#xff0c;这只是我们基础需要制作的。目的主要是为了实现在GameplayAblity上面设置对应的…...

speech to text 库FastASR交叉编译arm target的配置

FastASR是一个比较方便的SPEECH TO TEXT的AI库。开源。下面介绍下其在交叉编译到ARM target时候的交叉编译的cmake配置&#xff1a; cmake_minimum_required(VERSION 3.10)project(FastASR)SET(CMAKE_C_COMPILER "/home/xxx/buildroot/output/platform_name/host/bin/aar…...

WPS快速将插入Excle数据插入Word

前置条件&#xff1a; 一张有标题、数据的excle表格word中的表格与excle表格标题对应或包含电脑已经安装WPS软件 第一步、根据word模板设计excle模板&#xff0c;标头对应 第二步、word上面选【引用】--【邮件】&#xff0c;选打开数据源&#xff0c;找到excle文件&#xff0c;…...

Springboot 集成Rabbitmq之延时队列

1.首先确保已经引入了Spring AMQP和RabbitMQ的相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2. 创建一个普通队列并设置TTL&#x…...

【云开发笔记NO.22】运用云原生产品打造技术中台

一、云原生产品与技术中台的结合点 云原生产品以其容器化、微服务化、自动化等特性&#xff0c;为技术中台的建设提供了强大的技术支持。容器化技术使得应用可以更容易地进行部署和管理&#xff0c;提高了应用的可移植性和弹性。微服务架构则让应用更加模块化&#xff0c;便于…...

C++进阶(五) 哈希

1. unordered系列关联式容器 1.1 unordered_map 1.2 unordered_map的接口说明 2. 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 2.4.2 开散列 3. 模拟实现 3.1 unordered_set 3.2 unordered_map 4.哈希的应用 4.1 位图 4.1.…...

【算法基础】基于异或的排序、基于异或的经典面试题

文章目录 1. 传统交换2. 异或与异或的规律3. 基于异或的排序4. 需要注意的地方5. 经典面试题15.1 题目5.2 思路5.3 实现 6. 经典面试题26.1 题目6.2 思路6.3 实现 1. 传统交换 传统交换方法如下&#xff1a; def swap(i, j):tmp ii jj tmp通过开辟一个额外的变量空间&…...

HTML2:列表和表格

列表 有序列表 ordered list ol 无序列表 unordered list ul 定义列表 definition list dl 1,有序列表 每条列表前自带一个序号 2,无序列表 每条列表前自带一个小圆点 3,定义列表 注意:dl中放的不是li列表而是dt列表和dd表项 dt代表术语标题 dd代表术语内容 一个…...

用于无人机小型化设计的高精度温补晶振

用于无人机小型化设计的高精度温补晶振:TG2016SMN和TG2520SMN。无人机的发展可以说是非常的迅速&#xff0c;在安防&#xff0c;农业&#xff0c;交通&#xff0c;电力&#xff0c;直播等领域经常能看到无人机大显身手。无人机的应用场最是非常的广泛&#xff0c;功能更强&…...

轨迹规划 | 图解最优控制LQR算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 最优控制理论2 线性二次型问题3 LQR的价值迭代推导4 基于差速模型的LQR控制5 仿真实现5.1 ROS C实现5.2 Python实现5.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全…...

工业视觉检测

目录 我对工业视觉检测的了解 一、关键组成部分 二、应用场景 三、技术挑战 我对工业视觉检测的了解 工业视觉检测是利用机器视觉技术对产品质量进行自动化检查的过程&#xff0c;它在制造业中扮演着至关重要的角色&#xff0c;用于确保产品质量、提高生产效率、减少人工成…...

wheeltec轮趣ROS教育机器人的网络连接

一、术语解析 宿主机&#xff1a;宿主机是指物理主机&#xff0c;比如用于开发测试的笔记本电脑和台式机电脑。 虚拟机&#xff1a;虚拟机是指安装在宿主机的VMware&#xff0c;推荐在宿主机上安装虚拟机&#xff0c;官方提供虚拟机的镜像以及配套的开发环境。 ROS主机&…...

【Linux ARM 裸机】开发环境搭建

1、Ubuntu 和 Windows 文件互传 使用过程中&#xff0c;要频繁进行 Ubuntu 和 Windows 的文件互传&#xff0c;需要使用 FTP 服务&#xff1b; 1.1、开启 Ubuntu 下的 FTP 服务 //安装 FTP 服务 sudo apt-get install vsftpd //修改配置文件 sudo vi /etc/vsftpd.conf//重启…...

怎么保证缓存与数据库的最终一致性?

目录 零.读数据的标准操作 一.Cache aside Patten--旁路模式 二.Read/Write Through Pattern--读写穿透 三.Write Back Pattern--写回 四.运用canal监听mysql的binlog实现缓存同步 零.读数据的标准操作 这里想说的是不管哪种模式读操作都是一样的&#xff0c;这是一种统一…...

免费SSL通配符证书/SSL泛域名证书获取教程

我们先基本了解什么是SSL证书以及其作用。SSL证书是一种数字证书&#xff0c;它通过为网站提供身份验证和数据加密服务&#xff0c;从而保护网站的用户信息安全。当我们在浏览器的地址栏看到“https”和绿色锁标志时&#xff0c;就表示该网站使用了SSL证书。 那么什么又是通配…...

mysql结构与sql执行流程

Mysql的大体结构 客户端&#xff1a;用于链接mysql的软件 连接池&#xff1a; sql接口&#xff1a; 查询解析器&#xff1a; MySQL连接层 连接层&#xff1a; 应用程序通过接口&#xff08;如odbc,jdbc&#xff09;来连接mysql&#xff0c;最先连接处理的是连接层。 连接层…...

vue快速入门(十二)v-key索引标志

注释很详细&#xff0c;直接上代码 新增内容 v-key的使用场景数组筛选器的使用 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-…...

智能网联汽车自动驾驶数据记录系统DSSAD数据配置

目录 第一章 数据配置一般要求 第二章 数据配置文件中的文件描述 第三章 数据配置文件中的数据描述 第四章 数据配置文件中的数据字典 表A.1 数据字典格式定义 第一章 数据配置一般要求 数据配置文件数据内容应为可读的十进制数据。 数据配置文件应以文件的形式存储在自动驾驶…...

广州网站建设公司/平台推广公司

linux对用户是透明的,这是用linux最大的感受. 做win开发的很多人其实都是linux/unix高手,这正说明的技术的相通性,思想是相同的,只是实现的工具,方式有些差异罢了.利用更加透明的linux进行学习,可以接触更多的开源项目,开拓思路,达到触类旁通的效果.从国内的开发环境而言&#…...

罗湖网站建设报价/把百度网址大全设为首页

#金山快盘#窗前明月光&#xff0c; [快盘] 签到忙。点击得10M&#xff0c;微博还有奖。文件 [快盘] 放&#xff0c;不畏丢失殇&#xff1b;作息分两地&#xff0c;同步最擅长&#xff1b;在线想协作&#xff1f; [快盘] 有共享&#xff1b;平台终端广&#xff0c;陪我走四方&am…...

做网站数据存在哪里/seo描述是什么意思

Oracle内置空间管理工具-Segment Advisor数据表上频繁的进行插入、更新和删除动作会产生表空间碎片。Oracle可在表或索引上执行Segment shrink。使得segment的空闲空间可用于表空间中的其它segment&#xff0c;可改善DML性能。调用Segment Advisor对指定segment执行增长趋势分析…...

新手做网站选材/搜索引擎调词工具

前言线上定位问题时&#xff0c;主要靠监控和日志。一旦超出监控的范围&#xff0c;则排查思路很重要&#xff0c;按照流程化的思路来定位问题&#xff0c;能够让我们在定位问题时从容、淡定&#xff0c;快速的定位到线上的问题。线上问题定位思维导图一 服务器层面磁盘.1 问题…...

如何做宣传推广的网站链接/办公软件培训

解决办法 方法一 在进入开机界面后&#xff0c;按ctrlaltF1或F2 方法二 &#xff08;1&#xff09;第一步 在开机后出现grub界面后,图1&#xff0c;选择第一个选择后&#xff0c;按键盘的E键&#xff0c;会跳转到以下界面&#xff0c;这个界面是可编辑的。这是GRUB 会解析给…...

跨境电商快递怎么发到国外/广州网站优化推广方案

定制探测包Nmap提供–scanflags选项&#xff0c;用户可以对需要发送的TCP探测包的标志位进行完全的控制。可以使用数字或符号指定TCP标志位&#xff1a;URG, ACK, PSH,RST, SYN,and FIN。例如&#xff0c;nmap -sX -T4 –scanflags URGACKPSHRSTSYNFINtargetip此命令设置全部的…...