超简单的在VS Code配置C/C++的方法(最新,轻量化,支持万能头文件)

超简单的在VS Code配置C/C++的方法(最新,轻量化,支持万能头文件)

PS:最近一直在为如何在vscode使用cpp感到头疼,网上的教程要么太老,要么不适合新手,故决定自己写一篇。

为什么用vscode? --轻量化,另外就是博主并不主使用cpp开发,cpp只是用来打算法的

教程实现什么?

1.可用“万能头文件 bits/stdc++.h”

2.结构清晰:所有 exe 文件统一输出到 bin 文件夹,cpp文件统一存放到src文件夹

一. 环境准备

1.vscode安装

vscode安装地址(https://code.visualstudio.com/)

在这里插入图片描述

下载完后点击安装:

在这里插入图片描述

最好不要装在C盘,更改安装路径的话,路径不要有中文和空格!其他选项默认就行。

需要中文的看这里:

在这里插入图片描述


安装完中文后重启vscode即可

2.MinGW安装

vscode本身只是一个文本编辑器,想使用某种语言需要安装对应的编译器,这里给出 MinGW-w64轻量化安装教程:

2.1从 WinLibs 获取 mingw-w64 + GCC 压缩包,解压到自己选择路径

为什么选这个网站下载:不需要安装其他软件,能用万能头文件

WinLibs 官网(https://winlibs.com/),进去后往下翻到如图界面:

在这里插入图片描述

没特殊要求下载最新版就行,下载完后解压并把它放到你喜欢的路径(这个路径要记住!路径补药有空格和中文):

在这里插入图片描述

复制mingw64的bin文件夹路径,后面大量使用

在这里插入图片描述

2.2编辑环境变量

win11直接点击win键,搜索环境变量并打开:

在这里插入图片描述

win10点击win+R,输入sysdm.cpl并点击确定:

sysdm.cpl 
在这里插入图片描述

两种方法都进入同一个界面,按下图操作:

在这里插入图片描述


双击系统变量中的Path:

在这里插入图片描述

将你的bin路径添加进path,接着一直确定或应用即可

在这里插入图片描述

验证你的路径没问题:

win+R输入cmd进入终端,输入g++ --version和gcc --version

g++ --version gcc --version 
在这里插入图片描述

3.安装扩展

进入vscode安装cpp扩展,安装后重启vscode

在这里插入图片描述

二. 配置CPP

1.在你放代码的地方创建一个放cpp的文件夹

推荐在存放cpp代码的文件夹上级在创建一个文件夹,方便你以后管理

1.1先创建一个code文件夹存放所有类型代码(可选)

在这里插入图片描述

1.2接着在code文件夹内创建存放cpp的文件夹

在这里插入图片描述

1.3然后在cpp文件夹内创建如图显示的文件夹和文件

在这里插入图片描述

注意:看不见扩展名的按下图操作

在这里插入图片描述

2. .vscode配置

2.1 先在.vscode 文件夹内创建如下json文件

下面的文件记得将所有的路径改成你自己的!!!

2.1.1 c_cpp_properties.json

这文件由 C/C++ 扩展读取,用来给 IntelliSense 提供“编译器路径、C/C++ 标准、头文件搜索路径”等信息,从而让跳转、补全、诊断与灰色波浪线准确,它不负责真正编译,真正编译走 tasks/launch。

{// 版本号,扩展用"version":4,"configurations":[{// 方案名,随便取"name":"WinLibs-GCC",// 指向你的 g++.exe——扩展会据此探测系统头/宏,提升 IntelliSense 准确性"compilerPath":"F:/exploit/mingw64/bin/g++.exe",//记得改成你自己的路径// C 语言标准(仅影响 IntelliSense)"cStandard":"c17",// C++ 语言标准(仅影响 IntelliSense)"cppStandard":"c++20",// 选择解析模式(Windows 下的 GCC)"intelliSenseMode":"windows-gcc-x64",// 代码提示与头文件跳转需要搜索的目录(工作区与 src)"includePath":["${workspaceFolder}/src/**","${workspaceFolder}/**"],// 需要全局定义的宏(这里留空)"defines":[]}]}

要改的路径如图中的红框:

在这里插入图片描述
2.1.2 tasks.json

VS Code 的“构建任务”

{"version":"2.0.0","tasks":[{// 任务名,launch.json 会用到"label":"Build Active File (WinLibs)","type":"shell",// 调用 g++"command":"g++","args":[// 语言标准"-std=c++20",//如果显示版本过低,就换成c++2a// 生成尽可能完整的调试符号,便于断点与变量查看"-g3","-ggdb",// 关闭优化,避免指令重排导致断点飘移"-O0",// 常用告警"-Wall","-Wextra","-Wshadow",// 可选自定义宏"-DLOCAL",// 要编译的源文件:当前活动编辑器里的文件"${file}",// 输出 exe 到统一 bin 目录,文件名与源同名"-o","F:/exploit/code/cpp_code/bin/${fileBasenameNoExtension}.exe"//改成你的],// 让 g++ 能在本进程 PATH 中被找到(无需全局改环境变量)"options":{"env":{"PATH":"${env:PATH};F:\\exploit\\mingw64\\bin"}//改成你的mingw64的bin路径},// 将其标记为“默认构建任务”,便于 Ctrl+Shift+B 直接触发"group":{"kind":"build","isDefault":true},// 使用内置 $gcc 匹配器解析编译错误高亮"problemMatcher":["$gcc"]}]}

要改的路径如图中的红框:
版本问题可以自行修改语言版本

在这里插入图片描述
2.1.3 launch.json

调试配置告诉 VS Code:要运行哪个可执行文件、使用哪种调试器(GDB 的 cppdbg)、调试前先跑哪个构建任务(preLaunchTask)

{"version":"0.2.0","configurations":[{// 运行/调试面板中显示的名字"name":"Debug Active File (gdb)",// C/C++ 扩展的 GDB 调试器类型"type":"cppdbg",// 启动一个新进程进行调试"request":"launch",// 要调试的程序(与当前活动 .cpp 同名的 exe,位于 bin)"program":"F:/exploit/code/cpp_code/bin/${fileBasenameNoExtension}.exe",//改成你的// 程序参数(没有就空)"args":[],// 调试时的工作目录"cwd":"F:/exploit/code/cpp_code",//改成你的// 补充 PATH,确保 gdb/运行时 DLL 可被找到"environment":[{"name":"PATH","value":"${env:PATH};F:\\exploit\\mingw64\\bin"}//改成你的mingw64的bin路径],// 在 VS Code 内部控制台显示标准输出;需交互输入时可改为 true 以启用外部控制台"externalConsole":false,// 选择 GDB 模式"MIMode":"gdb",// 指定 gdb.exe 路径"miDebuggerPath":"F:/exploit/mingw64/bin/gdb.exe",//改成你的gdb.exe路径// 启动调试前先自动执行上面的构建任务"preLaunchTask":"Build Active File (WinLibs)"}]}

要改的路径如图中的红框:

在这里插入图片描述

2.2接着测试是否能够运行cpp程序

右键src文件夹点击新建文件,创建.cpp文件并调试(以后也是在src文件夹下创建cpp文件):

在这里插入图片描述


在这里插入图片描述

运行(点小箭头也行):

在这里插入图片描述

运行选择我们写的(有多个选第一个):

在这里插入图片描述

运行无问题:

在这里插入图片描述

F5或者点击右上角调试:

在这里插入图片描述

断点设置无问题

在这里插入图片描述

如有问题,欢迎留言o( ̄▽ ̄)ブ

Read more

C++学习之旅【实战全面解析C++二叉搜索树】

C++学习之旅【实战全面解析C++二叉搜索树】

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》《数据结构与算法》 《C++知识内容》《Linux系统知识》 ✨逆境不吐心中苦,顺境不忘来时路!🎬 博主简介: 引言:前篇文章,小编已经介绍了关于C++中多态概念指南与核心内容介绍!相信大家应该有所收获!接下来我将带领大家继续深入学习C++的相关内容!本篇文章着重介绍关于实战全面解析C++二叉搜索树,那么这里面到底有哪些知识需要我们去学习的呢?废话不多说,带着这些疑问,下面跟着小编的节奏🎵一起学习吧! 目录 * 1.⼆叉搜索树的概念 * 2.⼆叉搜索树的性能分析 * 3.⼆叉搜索树的插⼊ * 4.⼆叉搜索树的查找 * 5.⼆叉搜索树的删除 * 6.⼆叉搜索树的实现代码 * 7.⼆叉搜索树key和key/value使⽤场景 * 7.1key搜索场景 * 7.2key/value搜索场景 * 7.3key/value⼆

By Ne0inhk

C++ STL算法——排序和相关操作

C++ STL算法——排序和相关操作 在软件开发中,数据的有序性往往是高效查询、分析和处理的基础。C++标准模板库(STL)提供了一套功能强大且高度优化的排序及相关操作算法,它们不仅能够实现基本的升序/降序排列,还支持复杂的分区、归位、堆操作等高级功能。本文将深入剖析这些算法的核心机制、典型用法及性能特征。 一、核心概念解析 1. 排序的本质 排序是将一组无序元素按照特定规则(默认为<运算符)重新排列成有序序列的过程。STL中的排序算法基于不同的策略实现,适用于各种规模和类型的数据集。 2. 关键术语辨析 * 稳定 vs 不稳定:稳定排序保留相等元素的原始相对顺序(如std::stable_sort),而不稳定的实现(如std::sort)可能打乱这一顺序以换取更快的速度。 * 原地 vs 非原地:大多数排序算法都在原容器上直接操作(in-place),无需额外内存分配;少数特殊情况下可通过辅助缓冲区提升性能。 * 比较次数 &

By Ne0inhk
《编程修仙之C++——第七难:模板元编程,从“炼丹“到“炼器“》

《编程修仙之C++——第七难:模板元编程,从“炼丹“到“炼器“》

🌟 一位刚熬完前六难的筑基期菜鸟,边啃标准库边打坐的学习手札 目录 🧭 开篇引子:你不是在写代码,是在布阵炼器 📜 第一章:为何要渡此劫?——从“重复炼丹”到“一炉万丹” ▸ 场景还原:那个令人头秃的 Swap 函数 🏭 第二章:初窥铸模——函数模板:你的第一张《万锻天工图》 ▸ 2.1 铸模长啥样?——语法即道纹 ▸ 2.2 它怎么“活”起来?——隐式实例化:编译器自动开炉 ▸ 2.3 危险!类型推演的「道心考验」 🏯 第三章:进阶炼器——类模板:批量锻造「法宝套装」 ▸ 3.1 从单剑到剑匣:Vector 的模板化重生 🧪 第四章:彩蛋·冷知识—

By Ne0inhk
【C++】红黑树详解(2w字详解)

【C++】红黑树详解(2w字详解)

手搓AVL树 * 手搓红黑树 * github地址 * 0. 前言 * 1. 什么是红黑树 * 概念与定义 * 红黑树示例 * 2. 红黑树的性质 * 红黑树的性质解读 * 树的路径再认识 * 3. 红黑树如何确保最长路径不超过最短路径的2倍? * 4. 红黑树的实现 * 整体架构设计 * 结点颜色的枚举类 * 红黑树的结点定义 * 红黑树设计 * 红黑树的插入实现 * 1. 空树的插入 * 2. 新插入节点的父亲为黑色 * 新结点的颜色 * 3. 新插入节点的父亲为红色 * (1)叔叔存在且为红色:变色 + 继续向上处理 * (2)叔叔不存在或叔叔为黑色:旋转 + 变色 * ①LL型:右单旋 + 变色 * ②RR型:左单旋 + 变色 * ③LR型:左右双旋 + 变色 * ①RL型:右左双旋 + 变色 * 4.

By Ne0inhk