VS Code中“@“符号如何自动补全导入路径
一、下载 Path Intellisense 插件 二、打开设置,在扩展中选择该插件,点击setting.json 三、添加配置: "@":"${workspaceRoot}/src" 如图: 四、在项目src目录中新建jsconfig.json文件 (一定要是src目录) jsconfig.json内容如下: {"compilerOptions": {"target": "ES6","module": "commonjs","allowSyntheticDefaultImports": true,"baseUrl": "./","paths": {"@/*": ["src/*"]}},"exclude": ["node_modules"] } 到此即完成配置~实现效果如下: 补充小知识: ./:表示相对路径,代表当前目录下的同级目录,遵从的是从后往前找文件 @:等价于 /src 这个目录,遵从的是从前往后找,是为了避免麻烦
172 2024-04-11
编程技术问答社区
Spring Boot深度解析:是什么、为何使用及其优势所在
在Java企业级应用开发的漫长历史中,Spring框架以其卓越的依赖注入和面向切面编程的能力,赢得了广大开发者的青睐。然而,随着技术的不断进步和项目的日益复杂,传统的Spring应用开发流程逐渐显得繁琐和低效。为了解决这一问题,Spring Boot应运而生,它极大地简化了Spring应用的初始搭建以及开发过程,为开发者带来了前所未有的便捷。 一、Spring Boot是什么 Spring Boot是一个开源的Java应用框架,它基于Spring框架提供了一套快速构建Spring应用的脚手架。Spring Boot遵循“约定优于配置”的原则,通过大量的默认配置,减少了开发者在构建Spring应用时所需的手动配置工作。同时,Spring Boot还集成了众多常用的开发库和工具,如Spring MVC、JPA、Thymeleaf等,使得开发者可以快速地创建出生产就绪的应用程序。 二、为什么使用Spring Boot 使用Spring Boot的原因多种多样,但归结起来
170 2024-04-11
编程技术问答社区
计算机网络-TCP连接建立阶段错误应对机制
错误现象 丢包 网络问题:网络不稳定可能导致丢包,例如信号弱或干扰强。带宽限制可能导致路由器或交换机丢弃包,尤其是在高流量时段。网络拥塞时,多个数据流竞争有限的资源,也可能导致丢包。 缓冲区溢出:TCP使用缓冲区暂存数据包。如果缓冲区满了,新的数据包就会被丢弃。这通常发生在高速发送端和低速接收端之间的通信中。 程序处理错误:软件错误,如编程错误或资源管理不善,也可能导致数据包丢失。 损坏 传输链路上的噪声:电磁干扰等噪声可能导致比特级的错误,从而损坏数据包。 设备故障:路由器、交换机或其他网络设备的硬件故障也可能导致数据包损坏。 延迟 网络拥塞:当网络中的数据包数量超过网络能够处理的能力时,会导致延迟。 路由选择:数据包可能因为路由算法选择了较长的路径而导致延迟。 乱序:由于网络中的不同延迟路径,数据包可能会以不同的顺序到达目的地。 历史报文:旧的TCP连接的数据包可能在新的连接中被错误地接收。 连接建立阶段 三次握手:三次握手
184 2024-04-11
编程技术问答社区
蓝桥杯——16
学习视频:17-深搜的剪枝策略视频讲解_哔哩哔哩_bilibili #include #include using namespace std; int n, m; string maze[110]; bool vis[110][110]; int dir[4][2] = { {0,1},{0,-1},{1,0},{-1,0} }; int ans = 100000; bool in(int x, int y) {return x >= 0 && x = 0 && y = ans) return;if (maze[x][y] == 'T') {ans = step;return;}vis[x][y] = 1;int fx, fy;for (int i = 0; i
118 2024-04-11
编程技术问答社区
默克尔(Merkle)树 - 原理及用途
默克尔(Merkle)树的原理以及用途 引言 在当今数字化时代,确保数据的完整性是至关重要的。默克尔树作为一种高效的数据结构,被广泛应用于网络安全、分布式系统以及加密货币等领域,用于验证大量数据的完整性和一致性 数据完整性的挑战 在数据传输和存储过程中,数据可能会受到篡改、损坏或丢失的威胁。这些威胁对于诸如金融交易、网络通信和文件传输等关键领域尤为严重 默克尔树的概述 默克尔树是一种二叉树,其叶节点是数据块,而非叶节点则是由其子节点的哈希值计算得出的。这种结构允许在不需读取全部数据的情况下验证数据的完整性 默克尔树的构造 构建默克尔树的过程包括以下步骤: 按照固定的顺序排列数据 对每个数据块进行哈希计算,得到哈希值 逐层将相邻的哈希值合并成新的哈希值,直到最终得到根哈希值 验证数据完整性 默克尔树验证数据完整性的过程非常简单,只需比较根节点的哈希值。如果根节点的哈希值与预期的哈希值相匹配,则数据完整;否则,数据可能已被
68 2024-04-11
编程技术问答社区
2021年团体程序设计天梯赛-总决赛_L1
标题:L1-1 人与神 题目: 跨界大神 L. Peter Deutsch 有一句名言:“To iterate is human, to recurse divine.”(迭代的是人,递归的是神)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。 输出格式: 在一行中输出 To iterate is human, to recurse divine.。 输入样例: 无 输出样例: To iterate is human, to recurse divine. 要求: 解析: 思路: 签到题,直接输出。 代码: #include using namespace std; int main() {cout
70 2024-04-11
编程技术问答社区
定期与设定域名地址交互工具
下面是一个简单的C语言客户端示例,它会定期解析一个域名,然后与该域名解析得到的IP地址的4399端口建立TCP连接。客户端会持续监听来自服务器的命令,执行这些命令,并将执行结果返回给服务器。 请注意,这个示例没有包含错误处理和安全性考虑,这些在实际应用中是非常重要的。您需要确保代码能够正确处理网络错误、命令执行错误等情况,并且只执行安全的命令。 定期解析域名:当前的代码在连接失败或读取数据失败时会等待TIMEOUT_SEC秒后重试。这确实实现了定期重试的功能,但是这种简单的实现方式可能会在服务器暂时不可用时导致大量的重试尝试。 解析不成功时的行为:如果gethostbyname函数返回NULL,代码会打印一个错误消息并退出。这不符合您的要求,因为它不会继续尝试解析域名。我们应该将其修改为在解析失败时等待一段时间后重试。 非阻塞模式的使用:代码中设置了非阻塞模式,但是在recv函数调用时并没有处理EAGAIN和EWOULDBLOCK错误码。这意味着如果recv因为当前没有数
52 2024-04-11
编程技术问答社区
JAVA学习-深入研究容器.选择接口的不同实现
Java集合框架提供了多个接口,每个接口都有不同的实现类,以满足不同的需求。以下是几个常用接口及其不同的实现类的概述: 1. List接口: - 特点: 有序集合,允许重复元素。 - 实现类: ArrayList、LinkedList、Vector。 - 使用方法: 使用add()方法添加元素,使用get()方法获取元素,使用remove()方法移除元素等。 - 与其他比较: ArrayList和Vector是基于数组实现的,适用于随机访问;LinkedList是基于链表实现的,适用于频繁插入和删除操作。 - 高级应用: 使用ListIterator遍历列表并进行修改,使用subList获取子列表,使用Collections工具类进行排序和查找等。 2. Set接口: - 特点: 无序集合,不允许重复元素。 - 实现类: HashSet、LinkedHashSet、TreeSet。 -
46 2024-04-11
编程技术问答社区
初识--数据结构
什么是数据结构?我们为什么要学习数据结构呢....一系列的问题就促使我们不得不了解数据结构。我们不禁要问了,学习C语言不就够了吗?为什么还要学习数据结构呢?这是因为:数据结构能够解决C语言解决不了的问题,比如:图形,树状图... 要了解数据结构,就必须要知道:数据,数据项,数据元素,数据对象,是什么意思。 数据结构就是:数据元素相互之间存在一种或多种特定关系的数据元素集合。 数据结构的基本结构,也叫作数据结构的逻辑结构。它包括:线性结构,非线性结构。其中非线性结构又可以分为:图形,树状图,集合。它们构成逻辑结构。 数据结构大多数要用到函数和结构体的相关知识。一般的数据结构要用到二元组的知识,我们想一下,既然创造出了数据结构,那电脑是如何储存起来的呢?这就用到了数据结构的另一个知识点:数据结构中的存储结构。 存储结构又包括:顺序存储结构,链式存储结构。无独有偶的也是通过代码编译,然后通过软件实现的。 对于数据的类型,我们在C语言中已经写过了,在这我就不多介绍了。接下
52 2024-04-11
编程技术问答社区
外包干了3天,技术退步明显.......
先说一下自己的情况,大专生,19年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。 于是,我决定要改变现状,冲击下 大厂。 刚开始准备时,自己都蒙了,四年的功能测试让我的技术没有一丝的进步,提升的只有我的年龄… 没办法,我找到了我在腾讯的老哥,作为他的小老表,在他了解了我的情况后(几乎就是软件测试基础开始),直接甩给我一个网盘,说到:“去吧,这里有你需要的所有东西,不要来找我了,我都嫌丢人!”。 盘里头是一整套软件测试面试必备文档PDF,看完之后直接给我老哥给跪了…这下面试稳了。 内容涵盖:包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等… 质量非
54 2024-04-11
编程技术问答社区
Nevion 3G-SDI系列光端机
序号 型号 描述(厂商:Nevion) 单路光收发,传输距离0-20km 1 3GHD-EO-SFP 单路3G/HD/SD-SDI 光发器板卡,SFP插槽,支持CWDM波长,单模光纤,输入自动均衡,输出带分配及自动倒换,兼容DVB-ASI,需另配SFP模块。 2 SFP-3G-EO-13T 单通道光发卡SFP模块,支持SD/HD/3G-SDI信号,1310nm波长,光功率-5dBm。 3 3GHD-OE-SFP 单路3G/HD/SD-SDI 光收器板卡,SFP插槽,单模光纤,光灵敏度-20和-30dBm可选,最大光输入0dBm,输出带再生时钟,需另配SFP模块。 4 SFP-3G-OE 单通道光收卡SFP模块,支持SD/HD/3G-SDI信号,光接收灵敏度-20dBm。 单路光收发,传输距离0-100km 5 3GHD-EO-SFP 单路3G/HD/SD-SDI 光发器板卡,SFP插槽,支持CWDM波长,单模光纤,输入自动均衡,输出带分配及自动倒换,兼容DVB-ASI,需另
48 2024-04-11
编程技术问答社区
JavaScript数组操作方法全录
改变原数组的方法: push() - 将一个或多个元素添加到数组的末尾,并返回新数组的长度。 pop() - 从数组中移除最后一个元素,并返回该元素。 shift() - 从数组中移除第一个元素,并返回该元素。 unshift() - 将一个或多个元素添加到数组的开头,并返回新数组的长度。 splice() - 在指定的索引位置添加或移除元素,并返回被移除的元素。 reverse() - 反转数组中元素的顺序。 sort() - 对数组元素进行排序。 不改变原数组的方法: concat() - 将两个或多个数组合并为一个新数组。 slice() - 返回数组的一个子集作为新数组。 join() - 将数组中所有元素连接成一个字符串。 indexOf() - 返回指定值在数组中的第一个匹配项的索引。 lastIndexOf() - 返回指定值在数组中的最后一个匹配项的索引。 includes() - 返回一个布尔值,指示数组是否包含指定的值。 filter() - 使用指定
54 2024-04-11
编程技术问答社区
【c++】string类常见接口函数
🔥个人主页:Quitecoder 🔥专栏:c++笔记仓 朋友们大家好啊,本节我们来到STL内容的第一部分:string类接口函数的介绍 目录 1.string类的认识 2.常见接口讲解 2.1 string类对象的常见构造 2.2 对string对象的遍历和修改 2.3 string类对象的容量操作 2.4 string类对象的修改操作 注意事项: 1.string类的认识 给大家分享一个c++文档库: https://legacy.cplusplus.com/ 字符串类是代表字符序列的对象 标准字符串类为这类对象提供了支持,其接口类似于标准字节容器的接口,但增加了专门用于操作单字节字符字符串的特性 通过下面这串代码: typedef basic_string string; 对应文档内容: 字符串类是basic_string类模板的一个实例化,它使用char(即字节)作为其字
52 2024-04-11
编程技术问答社区
js中如何进行隐式类型转换
ToPrimitive 方法,是js中每个值隐含的自带方法,用来将值转换为基本类型。如果值为基本类型,则返回本身,否则,进行转换,返回基本类型值。 /** * @obj 需要转换的对象 * @type 期望的结果类型 Number或String */ ToPrimitive(obj,type) 1、当type为Number时 调用obj的valueOf方法,如果为原始值,则返回,否则,进行下一步; 调用obj的toString方法,后续同上; 抛出TypeError异常。 2、当type为String时 调用obj的toString方法,如果为原始值,则返回,否则,进行下一步; 调用obj的valueOf方法,后续同上; 抛出TypeError异常。 默认情况下,如果对象为Date对象,则type默认为string;其他情况下,type默认为number。 综上所述,基本规则可以概括为以下函数: var objToNum
58 2024-04-11
编程技术问答社区
蓝桥杯C/C++A组省赛历年真题题解(2020~2023)
刷题整理2020~2023蓝桥A组真题。 2020202120222023 门牌制作 卡片(模拟题) 裁纸刀 幸运数 既约分数 直线(数学枚举) 灭鼠先锋 有奖问答 蛇形填数 货物摆放(因子暴力枚举) 求和 平方差 七段码 路径(最短路) 选数异或 更小的数 平面分割 回路计数 爬树的甲壳虫 颜色平衡树 成绩分析 砝码称重 青蛙过河 买瓜 回文日期 异或数列 最长不下降子序列 网络稳定性 子串分值 左孩子右兄弟 扫描游戏 异或和之和 荒岛探测 括号序列 数的拆分 像素放置 字串排序 分果果 推导部分和 翻转硬币 >蓝色已有题解,红色暂无。。。
54 2024-04-11
编程技术问答社区
NLopt
非线性优化–NLopt (nonlinear optimization)是一个免费的开源的库,提供了很多种非线性优化算的使用接口。 1、其中非常大的优势就是提供多种支持的语言,包括C/ C++/ Julia/ Python/ R/ Fortran/ Lua/ OCaml/ Octave等都支持 1. 区别 **COBYLA(**线性逼近的约束优化) 该算法通过n维n+1点的单纯形构造目标函数和约束的连续线性逼近,并在每一步的信赖区域中优化这些逼近。 BOBYQA 因为BOBYQA构造了目标的二次逼近,所以对于不能二次可微的目标函数,它可能执行得很差 powell 参考资料: NLopt文档 算法清单 NLopt介绍 NLopt中无导数alg 简介
10 2024-04-11
编程技术问答社区
如何通过子网掩码来计算IP的地址范围
通过子网掩码计算IP地址范围是一个基本的网络技能,它允许你确定一个给定网络的可用IP地址。以下是详细的步骤和计算方法: 1. 理解子网掩码 子网掩码是32位的二进制数,用来决定IP地址中哪些部分是网络地址,哪些部分是主机地址。子网掩码通常以点分十进制形式表示,例如255.255.255.0。 2. 将子网掩码转换为二进制 为了计算IP地址范围,你需要将子网掩码从点分十进制转换为二进制。例如,子网掩码255.255.255.0转换为二进制是11111111.11111111.11111111.00000000。 3. 确定网络和主机部分 子网掩码中的1表示网络部分,0表示主机部分。在上面的例子中,前三个八位字节(24位)是网络部分,最后一个八位字节(8位)是主机部分。 4. 计算网络地址 网络地址是通过将IP地址的主机部分(以二进制表示)替换为0来得到的。例如,如果你有一个IP地址192.168.1.10和子网掩码255.255.255.0,
12 2024-04-11
编程技术问答社区
微信小程序页面交互综合练习 (重点:解决“setData of undefined”报错问题)
一、写一个注册表单,点击“注册”按钮将用户输入的数据带到服务器,并且能在控制台显示参数。 (1)首先,我需要在vscode里面创建一个简易的node.js服务器 //第一步:引入http模块 var http =require('http'); //第二步:创建服务器 http.createServer(function(request,response){ //发送http头部 response.writeHead(200,{'Content-Type':'text/plain'}); //获取请求参数 console.log(request.url); //发送响应数据 response.end(`[{ "name": "JavaScript高级程序设计", "author": "扎卡斯", "price": "¥78.20" },{ "name": "HTML5移动Web开发", "author": "黑马程序员", "price": "¥39.50" },{ "nam
6 2024-04-11
编程技术问答社区
MongoDB【应用 01】通过_id获取记录创建时间(生成规则+解析步骤+源码分享)
通过_id获取记录创建时间 1. _id的生成规则 2. 步骤及举例 2.1 步骤 2.2 举例 1. _id的生成规则 MongoDB 的 _id 值按照 ObjectId 的生成规则来生成。ObjectId是一个12字节(16进制表示为 24 位字符串)的标识符,它的构成包括以下几个部分: 【4字节】时间戳(Timestamp):前 4 个字节表示创建此 ObjectId 时的 Unix 时间戳(精确到秒)。这提供了秒级的时间唯一性。 【3字节】机器标识符(Machine Identifier):接下来的 3 个字节代表生成此 ObjectId 的机器的唯一标识符。通常,这基于主机名的散列值,确保在同一网络中的不同服务器上生成的 ObjectId 可以区分。 【2字节】进程标识符(Process Identifier, PID):接下来的 2 个字节表示生成此 ObjectId 的进程 ID。这样即使在同一台机器上运行的多个 MongoDB 实例
12 2024-04-11
编程技术问答社区
鸿蒙开发 一 (二)、熟悉鸿蒙之剑 ArkTS
ArkTS是HarmonyOS主要应用开发语言,以后也别在弄那个 java 和鸿蒙的混合版了, 没必要浪费时间, 一步到位, 学新的吧。 简介 ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能 强制使用静态类型:静态类型是ArkTS最重要的特性之一。如果使用静态类型,那么程序中变量的类型就是确定的 禁止在运行时改变对象布局:为实现最大性能,ArkTS要求在程序执行期间不能更改对象布局。 限制运算符语义:为获得更好的性能并鼓励开发者编写更清晰的代码,ArkTS限制了一些运算符的语义。比如,一元加法运算符只能作用于数字,不能用于其他类型的变量。 不支持Structural typing:对Structural typing的支持需要在语言、编译器和运行时进行大量的考虑和仔细的实现,当前ArkTS不支持该特性。 ArkTS主要扩展了
8 2024-04-11
编程技术问答社区