Vscode配置CC++编程环境的使用体验优化和补充说明
文章目录
- 快速编译运行👺
- code runner插件方案
- Code Runner Configuration
- 直接配置
- 相关指令和快捷键
- 默认task配置和取消默认
- 配置文件补充介绍(可选 推荐阅读)😊
- 使用vscode预置变量和环境变量
- 环境变量的使用
- 使用环境变量的好处
- 环境变量可能引起的问题
- 检查编译器所在目录是否正确配置进Path变量
- 简化编译器和调试器的路径
快速编译运行👺
如果您的编程场景相对简单,比如仅仅是写一些算法题(比如学生党)或者是检查验证某些语言特性或验证猜想,这类用途下只要将所有代码放到同一个源文件中(.c/.cpp)中,那么使用快捷键快速编译运行将会是更快捷的方法
您当然可以选择通用而灵活的命令行做编译运行操作,但是远不如快捷键来的方便,不过对于复杂编译场景或需求,还是用命令比较合适,比如需要频繁修改编译参数,或者需要编译多个文件等复杂情况
vscode中编译和调试可以分开,编译环节可以使用命令Run build task(command palette),或者使用快捷键启动,这么做可以实现快速编译,跳过调试(gdb)部分,但是不会自动运行编译出来的程序,仍然不够快捷
code runner插件方案
主打快捷地编译运行,不考虑复杂的编译需求和方案选项,也不考虑调试操作,但是这已经能够满足基本的c/c++编程环境的需要了
这里的快捷键快速编译运行采用的方案是使用插件:
Code Runner - Visual Studio Marketplace
本方案是相对独立的方案,甚至不需要使用c/c++扩展,只要安装了c/c++编译器,安装code runner插件,配置环境变量或者提供编译器程序的绝对路径
- 这个方案虽然简单,但是意味着补全和提示,断点调试功能会受到影响,所以仍然建议配置以下c/c++插件,code runner 插件作为快速编译运行的选项灵活使用(可以选择独立或不同版本的编译器,提供编译器绝对路径即可)
为了兼容中文源文件名的编译,这里给出c/cpp两种语言的源文件编译的配置json
这里默认将编译结果的文件名设置为a.exe,并且运行也是用这个名字
"c": "cd $dir && g++ -std=c++11 -finput-charset=UTF-8 -fexec-charset=gbk \"$fileName\" -o \"a.exe\" && .\\\"a.exe\"",
"cpp": "cd $dir && g++ -std=c++11 -finput-charset=UTF-8 -fexec-charset=gbk \"$fileName\" -o \"a.exe\" && .\\\"a.exe\"",
如果你想要保留源文件的名字(兼容中文),也是可以的,这里使用-finput-charset=UTF-8 -fexec-charset=gbk来指定中文文件名编码,并且使用了预设变量 $fileName,$fileNameWithoutExt等
// "c": "cd $dir && g++ -std=c++11 -finput-charset=UTF-8 -fexec-charset=gbk \"$fileName\" -o \"$fileNameWithoutExt.exe\" && .\\\"$fileNameWithoutExt.exe\"",\\"cpp": "cd $dir && g++.exe -std=c++11 -finput-charset=UTF-8 -fexec-charset=gbk \"$fileName\" -o \"$fileNameWithoutExt.exe\" && .\\\"$fileNameWithoutExt.exe\"",
// "cpp": "cd $dir && C:\\exes\\RedPanda-CPP\\mingw64\\bin\\g++.exe -std=c++11 -finput-charset=UTF-8 -fexec-charset=gbk \"$fileName\" -o \"$fileNameWithoutExt.exe\" && .\\\"$fileNameWithoutExt.exe\"",
产检相关配置文档:(详情查看上述链接)
Code Runner Configuration
- Make sure the executor PATH of each language is set in the environment variable.
- You could also add entry into
code-runner.executorMapto set the executor PATH. e.g. To set the executor PATH for ruby, php and html:
{"code-runner.executorMap": {"javascript": "node","php": "C:\\php\\php.exe","python": "python","perl": "perl","ruby": "C:\\Ruby23-x64\\bin\\ruby.exe","go": "go run","html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"","java": "cd $dir && javac $fileName && java $fileNameWithoutExt","c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"}
}
Supported customized parameters
- $workspaceRoot: The path of the folder opened in VS Code
- $dir: The directory of the code file being run
- $dirWithoutTrailingSlash: The directory of the code file being run without a trailing slash
- $fullFileName: The full name of the code file being run
- $fileName: The base name of the code file being run, that is the file without the directory
- $fileNameWithoutExt: The base name of the code file being run without its extension
- $driveLetter: The drive letter of the code file being run (Windows only)
- $pythonPath: The path of Python interpreter (set by
Python: Select Interpretercommand)
Please take care of the back slash and the space in file path of the executor
- Back slash: please use
\\ - If there ares spaces in file path, please use
\"to surround your file path
直接配置
-
使用
launch.json启动编译和调试虽然可以一键执行,但是速度比较慢 -
要知道直接用g++命令行编译是很快的,所以我们可以设法改进这一点
-
我们可以用Code Runner插件来快速执行编译并直接运行,而不是编译后启动调试运行
- Code Runner - Visual Studio Marketplace
-
我们以hellow,world为例
-
配置后按下快捷键可以有如下效果
PS C:\repos\C_CPP_ConsoleApps> cd "c:\repos\C_CPP_ConsoleApps\cpp\" ; if ($?) { g++ -std=c++11 "hellowworld2.cpp" -o "hellowworld2.exe" } ; if ($?) { .\"hellowworld2.exe" } Hello World! -
如果使用默认的
start debugging,速度要慢上许多-
PS C:\repos\C_CPP_ConsoleApps> & 'c:\Users\cxxu\.vscode\extensions\ms-vscode.cpptools-1.20.3-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-pcmtfxlj.w4p' '--stdout=Microsoft-MIEngine-Out-f12ge22g.01f' '--stderr=Microsoft-MIEngine-Error-i3ud5s4n.nq2' '--pid=Microsoft-MIEngine-Pid-cwud2zvq.q2k' '--dbgExe=C:\msys64\ucrt64\bin\gdb.exe' '--interpreter=mi' Hello World!
-
-
-
配置
tasks.json(不推荐)-
"args": ["-fdiagnostics-color=always",// "-g","${file}","-o","${fileDirname}\\a.exe","&&","a.exe"], -
您或许考虑创建一个task令其编译完成后追加运行
-
但是这并不好用,估计vscode c++ extension并没有打算让用户这么用
- 如果仅仅是输出hello,world 这种程序还要,但是如果先要输入,那么build task就会被卡住
-
相关指令和快捷键
-
command shutcut(default) Notes Debug:start DebuggingF5最常用的快捷键,一键编译运行源代码,并且可以设置支持打断点调试 Tasks:Run Build Task无 仅编译源代码,可以得到编译后的可执行的二进制文件,但是不会运行,通常是作为 Start Debugging的第一个步骤,比较少单独使用Debug:Select and Start Debugging无 选择一个debug方案,特别是您已经配置了多个方案时, Tasks:Config Default Build Task无 选择默认的task配置,为了适应不同的编译需要,用户在 task.json和launch.json中可以配置多个版本;可以从中选择一个最常用的配置Tasks:Config Task无 配置task,最后会跳转到 tasks.json文件中的某一个tasks数组中的一个对象,每个对象对应一个task配置
相关快捷键可以自行修改
-
相关指令操作 说明 
我这里配置了3个task,为了名称简洁,以及方便引用,我把各个对象中的 Label字段简单重名为task x的形式;
您可以利用这个命令tasks:configure
command paletee中输入: Run C/C++ File

tasks:run build task可以列出配置在tasks.json中的build task,(但是如果配置了默认task,可能不会列出全部的task);
如果取消掉所有设置默认的task,就会列出所有tasks;
选中其中的一个,可以启动编译,顺利的话会得到一个可执行二进制文件;
可以从command palette输入 Debug:Select and Start Debugging进行选择debug方案
也可以找到侧边的按钮中得到列表内选择一个debug方案; -
如果刚刚配置好
tasks.json,launch.json但是列表中没有显示出来对应的方案,可以尝试重载vscode窗口(或者重启vscode) -
如果始终没有,可能是配置文件(json)出错了
默认task配置和取消默认
-
在
tasks.json中的某个task中设置"group"对象 -
//配置默认的build task(注意不要多个task争抢默认build) // 非默认的task的"group"字段配置为:"group":"build",或考虑将"isDefault"设置为false "group": {"kind": "build","isDefault": false //改为true就表示设置为默认 },
配置文件补充介绍(可选 推荐阅读)😊
- 下面我给出自己的配置,其特点是基本满足各种编译需求,适用于轻量的
C/C++编译 - 在讲具体配置内容之前,先了解以下内容
tasks.json中的tasks数组- 每个元素是一个对象,视为一个
build task,分别表示一种build源代码的方案 - 首先我的建议是取一个合适的
task名字,在各个task对象的label字段中配置,名字可以设置的简单一些- 不需要担心命名太简单而看不出配置的用途,因为我们可以在detail字段中写入详细的信息
- 将label字段设置的简单的好处在于
launch.json中的preLaunchTask引用起来就方便,尽管您可以复制粘贴label字段的值代替手动输入到preLaunchTask字段😊
- 每个元素是一个对象,视为一个
launch.json中的configurations数组- 每个元素是一个对象,可以视为一个
launch方案,表示如何调试源代码(包括使用哪个调试器(debugger),要启动哪一个build task,调试时要传递什么参数给调试器等) - 这里最重要的除了配置正确的调试器路径,还要设置启动正确的task名称,这些名称从
tasks.json中的label字段查找,比如我在tasks.json中配置了3种build task方案分别名为task1,task2,task3那么合法的名字就只有上述3个 - 当然默认产生的task 的
label一般是C/C++: g++.exe build active file,这个东西可以按照自己的喜好和方便使用的角度修改 launch.json中有name字段可以写得详细一些,因为我们不需要再引用这里的name字段了name字段的值会显示在选择debug方案的列表中,供我们辨认不同的debug方案和选择
- 每个元素是一个对象,可以视为一个
- 最后
c_cpp_properties.json文件,不是必须要的,但是如果有需要可以配置一些库的路径,编译标准版本等
使用vscode预置变量和环境变量
-
Visual Studio Code Variables Reference
-
Visual Studio Code(VS Code)支持在调试和任务配置文件以及某些特定设置中使用变量替换。这些变量通过
${variableName}语法在launch.json和tasks.json文件中的键值字符串内实现替换。 -
用户环境变量和系统环境变量的引用:假设我配置了用户环境变量
MSYS2_MINGW,并且确认了该值的有效性-
PS> $env:MSYS2_MINGW C:\msys64\ucrt64\bin -
PS[BAT:79%][MEM:32.00% (10.14/31.70)GB][22:02:08] # [C:\repos\C_CPP_ConsoleApps]ls $env:MSYS2_MINGW |where{$_.Name -like "gcc.*" -or $_.Name -like "g++.*" -or $_.Name -like "gdb.*"}Directory: C:\msys64\ucrt64\binMode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2023/12/2 2:14 2721152 g++.exe -a--- 2023/12/2 2:14 2718592 gcc.exe -a--- 2023/12/4 21:52 10370879 gdb.exe -
我在配置C/C++的试验中,发现引用环境变量仅在
launch.json中是有效的-
"miDebuggerPath": "${env:MSYS2_MINGW}\\gdb"
-
-
然而,在
tasks.json中引用环境变量是无效的
-
环境变量的使用
使用环境变量的好处
-
如果将相关路径添加到
Path路径中,那么就可以直接用名字gcc,g++,gdb来代替绝对路径- 无论是先配置
MSYS2_MINGW,然后将MSYS2_MINGW添加到Path,或者直接将路径MSYS2_MINGW对应的值(我的例子是C:\msys64\ucrt64\bin)添加到Path变量中都可以 - 如果是用户级别的环境变量,不需要管理员权限
- 总之这个任务很简单,资料也很丰富,这里不赘述;但是配置了以后很有用
- 命令行输入
SystemPropertiesAdvanced.exe或者开始菜单中输入环境变量搜索就可以打开配置的控制面板,点击环境变量进行配置,用户级别和系统级别的Path任选其一将路径添加到Path变量中即可; - 老手也可以选择用命令行配置,比如
setx,powershell还可以用[Environment]::SetEnvironmentVariable()来配置
- 命令行输入
- 无论是先配置
环境变量可能引起的问题
- 生产环境的环境变量配置需要考虑的问题更多,配置环境变量虽然能够提供方便,但是可能引入潜在的混淆的机会
- 但是对于学习环境,配置环境变量是方便和可行的,也是很平常的事情
检查编译器所在目录是否正确配置进Path变量
-
上面的路径配置不是必须的,但确实很有用,可以带来便利的操作
-
通过以下命令来检查是否配置成功
gcc --version g++ --version gdb --version -
PS[BAT:79%][MEM:34.73% (11.01/31.70)GB][22:07:20] # [C:\repos\scripts] PS> gcc --version gcc.exe (Rev3, Built by MSYS2 project) 13.2.0 Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.PS[BAT:79%][MEM:36.41% (11.54/31.70)GB][22:18:52] # [C:\repos\scripts] PS> g++ --version g++.exe (Rev3, Built by MSYS2 project) 13.2.0 Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.PS[BAT:79%][MEM:36.41% (11.54/31.70)GB][22:18:52] # [C:\repos\scripts] PS> gdb --version GNU gdb (GDB) 14.1 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. -
上述命令各自没有报错,返回了各自的版本号,这说明配置是正确的
简化编译器和调试器的路径
- 经过上述的Path变量配置,我们可以在vscode中得到以下效果
- 可在任意终端中直接用
gcc,g++,gdb来带直接调用相应的软件 - 可以简化vscode中的相关配置(末尾的逗号是json中的不同字段的分割符)
tasks.json中的"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",可以简化为"command": "g++",launch.json中的"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",简单用gdb来代替,即可以简化为"miDebuggerPath": "gdb",
- 不仅如此,如果用的不是Msys2安装的
gcc,g++,gdb而是其他方式安装的,比如直接用的MinGw安装的,那么我们也不需要去改动vscode中的配置文件,只需修改一下Path环境变量中gcc,g++,gdb的所在目录即可(通常这三个组件都是同一个目录)
相关文章:
Vscode配置CC++编程环境的使用体验优化和补充说明
文章目录 快速编译运行👺code runner插件方案Code Runner Configuration 直接配置 相关指令和快捷键默认task配置和取消默认 配置文件补充介绍(可选 推荐阅读)😊使用vscode预置变量和环境变量环境变量的使用使用环境变量的好处环境变量可能引起的问题 检…...
十个方法杜绝CAD图纸泄密风险!2024年图纸防泄密指南!「必看」
随着信息技术的发展,CAD图纸的应用日益普遍,然而随之而来的图纸泄密风险也愈加严重。企业在提升效率的同时,更需重视信息安全。为此,本文将介绍十个有效的方法,帮助企业杜绝CAD图纸泄密风险,保障商业机密。…...
技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 1
虚拟风洞VWT 从2023版本开始,虚拟风洞VWT(Virtual Wind Tunnel)模块合并到HyperMesh CFD中。 用户在VWT模块中完成LBM求解器ultraFluidX的前处理设置,导出参数文件XML和模型文件STL,并在GPU服务器上提交计算。 VWT目前…...
022集——统计多条线的总长度(CAD—C#二次开发入门)
如下图所示,选择多条线并统计长度: c#中不包含直接获取curve曲线长度 属性,需用如下方法:curve.GetDistanceAtParameter(item.EndParam) 附部分代码如下: using Autodesk.AutoCAD.ApplicationServices; using Autode…...
大模型重要技术系列三:高效推理
接上一篇高效训练,这一篇汇总下高效推理的方法。高效推理的两个主要优化目标是低延迟(快速得到推理结果)和高吞吐量(能同时处理很多请求),同时还要尽可能地少用资源(算力、存储、网络带宽&#…...
Android 刘海屏适配指南
如果您不希望您的内容与刘海区域重叠, 以确保您的内容不会与状态栏及 导航栏。如果您要呈现在刘海区域中,请使用 WindowInsetsCompat.getDisplayCutout() 检索 DisplayCutout 对象 包含每个刘海屏的安全边衬区和边界框。借助这些 API 您需要检查视频内容…...
微信小程序服务通知
项目中用到了小程序的服务消息通知,通知订单状态信息,下边就是整理的一下代码,放到项目中,把项目的小程序appid和小程序的secret写进去,直接运行即可 提前申请好小程序服务信息通知短信模板,代码需要用到模…...
Ubuntu使用Qt虚拟键盘,支持中英文切换
前言 最近领导给了个需求,希望将web嵌入到客户端里面,做一个客户端外壳,可以控制程序的启动、停止、重启,并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构,但程序还是运行在本地工控机上的),我…...
泰州农商行
该文章用于测试,暴露面检测服务 1595116111115951161112159511611131595116111415951161115159511611161595116111715951161118159511611191595116112015951161121159511611221595116112315951161124159511611251595116112615951161127159511611281595116112915951…...
扫雷(C语言)
目录 前言 一、前提知识 二、扫雷游戏编写 2.2 test文件基本逻辑 2.2.1菜单编写 2.2.2game函数的逻辑 2.2.2.1定义两个数组 2.2.2.2两个数组数组的初始化 2.2.2.3打印棋盘 2.2.2.4布置雷 2.2.2.5排查雷 2.2.2.6获取坐标附近雷的数量 2.2.2.7什么时候…...
【实践功能记录8】使用UseElementSize实现表格高度自适应
一、关于 UseElementSize UseElementSize 是一个 Vue 组合式 API 的实用工具,通常用于获取 DOM 元素的尺寸信息,例如宽度、高度等。它通常与 v-slot 一起使用,以便在模板中直接访问这些尺寸信息。 地址:https://vueuse.org/core/u…...
SMO算法 公式推导
min α 1 2 ∑ i 1 N ∑ j 1 N α i α j y i y j K ( x i ⋅ x j ) − ∑ i 1 N α i s.t. ∑ i 1 N α i y i 0 0 ≤ α i ≤ C , i 1 , 2 , ⋯ , N (9-69) \begin{aligned} & \min_{\alpha} \quad \frac{1}{2} \sum_{i1}^{N} \sum_{j1}^{N} \alpha_i \alpha_j…...
nodejs包管理器pnpm
简介 通常在nodejs项目中我们使用npm或者yarn做为默认的包管理器,但是pnpm的出现让我们的包管理器有了更多的选择,pnpm相比npm具有以下优势: 速度更快,pnpm在安装依赖时,会将依赖包缓存到全局目录,下次安…...
【postman】工具下载安装
postman作用 postman用于测试http协议接口,无论是开发, 还是测试人员, 都有必要学习使用postman来测试接口, 用起来非常方便。 环境安装 postman 可以直接在chrome 上安装插件,当然大部分的同学是没法连接到谷歌商店的,我们可以在电脑本地…...
Java_Springboot核心配置详解
Spring Boot以其简洁、高效和约定优于配置的理念,极大地简化了Java应用的开发流程。在Spring Boot中,核心配置是应用启动和运行的基础。本文将详细介绍Spring Boot中的两种配置文件格式、基础注解的配置方式、自定义配置以及多环境配置。 一、Spring Bo…...
太速科技-9-基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡
基于DSP TMS320C6678FPGA XC7V690T的6U VPX信号处理卡 一、概述 本板卡基于标准6U VPX 架构,为通用高性能信号处理平台,系我公司自主研发。板卡采用一片TI DSP TMS320C6678和一片Xilinx公司Virtex 7系列的FPGA XC7V690T-2FFG1761I作为主处理器&#…...
在线UI设计工具:创意与效率的结合
随着UI设计领域的快速增长,设计师们纷纷投身于这一行业,选择一款合适的UI设计工具变得至关重要。除了经典的UI设计软件,在线UI设计工具因其灵活性和便捷性,越来越受到设计师们的喜爱。这种不受时间和地点限制,且不依赖…...
【MyBatis源码】SqlSessionFactoryBuilder源码分析
文章目录 概述类结构从 InputStream 创建 SqlSessionFactoryXMLConfigBuilder构建ConfigurationXMLConfigBuilder初始化方法parse()方法parseConfiguration属性(properties) 概述 SqlSessionFactory 是 MyBatis 的核心接口之一,提供创建 Sql…...
Percona XtraBackup数据备份方案
一、简介 官方文档:https://docs.percona.com/percona-xtrabackup/innovation-release/index.html Percona XtraBackup 是一款适用于基于 MySQL 的服务器的开源热备份实用程序,可让您的数据库在计划的维护时段内保持完全可用。无论是 24x7 高负载服务器还是低交易量服务器,…...
聚“芯”而行,华普微亮相第五届Silicon Labs Works With大会
2024年10月24日,由致力于以安全、智能无线连接技术建立更互联世界的全球领导厂商Silicon Labs主办的第五届Works With开发者大会在上海雅乐居万豪侯爵酒店成功举办。 作为全球性的物联网年度“盛宴”,本届大会群英荟萃,不仅有着来自生态大厂的…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
