C++
文章平均质量分 86
C++知识学习
YRr YRr
记录一下来时走过的路
一些文章都是根据知识点让AI写的 不喜勿喷
一些是自己的踩坑操作过程
一些是看到比较好的b站视频的讲解记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解C++中的构造函数:定义、用途与初始化列表
构造函数是C++中用于对象初始化的关键机制,通过它们可以确保对象在创建时具备所需的初始状态和资源。初始化列表作为构造函数的一部分,提供了一种高效且必要的方法来初始化成员变量,特别是对于常量、引用和复杂类型的成员。理解和正确使用构造函数及其初始化列表,是编写高效、健壮和可维护的C++代码的基础。通过掌握构造函数的各种类型和使用方法,开发者可以更好地控制对象的生命周期,优化程序性能,并确保数据的一致性和完整性。原创 2025-02-23 21:03:10 · 1149 阅读 · 0 评论 -
在C++中使用对象指针作为模板参数:定义、用途、原理与示例解析
引言对象指针作为模板参数的定义使用对象指针作为模板参数的方法对象指针作为模板参数的作用与优势工作过程与原理示例解析:管理多态对象的容器代码示例代码详解最佳实践与注意事项总结**模板类(Template Class)**是C++中支持泛型编程的一种机制,允许在类定义时使用占位符类型(模板参数)。通过模板,开发者可以在不指定具体类型的情况下编写类定义,随后在使用时根据需要实例化为具体类型。对象指针作为模板参数指的是在模板类或函数中使用指向对象的指针作为模板参数。原创 2025-02-20 20:55:06 · 1224 阅读 · 0 评论 -
PCL中的KdTree详解及C++实现示例
KdTree,全称k-dimensional tree,是一种用于组织k维空间中点的高效数据结构。它通过递归地将k维空间划分为若干子空间,从而实现对点的快速存储和检索。KdTree的每个节点代表一个超矩形空间,并依据某一维度的中位数将空间划分为两个子空间。PCL中实现的KdTree主要用于三维空间(k=3),但其理论可推广至更高维度。KdTree作为PCL中一种重要的空间索引数据结构,通过递归地划分k维空间,实现了对点云数据的高效存储和快速检索。原创 2025-04-01 21:29:51 · 1519 阅读 · 0 评论 -
深入解析C++中的Lambda表达式
/ 函数体capture(捕获列表):指定Lambda表达式可以访问的外部变量。parameters(参数列表):类似于普通函数的参数,用于接收输入。return_type(返回类型):可选部分,通常由编译器自动推断。函数体:具体执行的代码逻辑。C++中的Lambda表达式通过其简洁的语法和强大的功能,极大地提升了编程的灵活性和效率。它们不仅简化了函数对象的定义,还在算法、回调、并行计算等多种场景中展现出卓越的应用价值。原创 2025-04-01 21:37:13 · 1071 阅读 · 0 评论 -
深入解析C++中的stdvector:定义、用途、工作原理与实用示例
引言的定义与特点的用途与优势的工作过程与内部机制的使用方法创建与初始化常用操作遍历与访问的性能分析实用示例:动态数组管理示例代码代码详解与其他STL容器的比较最佳实践与注意事项总结参考资料是一个模板类,定义在头文件<vector>中。它代表一个可以动态调整大小的数组,能够存储任意类型的元素。// 存储整数的动态数组// 存储字符串的动态数组主要特点:动态大小:能够在运行时根据需要自动调整大小。连续内存:元素在内存中连续存储,支持快速随机访问。高效的末尾插入。原创 2025-02-23 20:57:15 · 1186 阅读 · 0 评论 -
深入解析C++中的函数调用操作符 (operator()):定义、用途、实现与工作原理
在C++编程中,操作符重载(Operator Overloading)是一项强大的特性,使得开发者能够为自定义类型定义或修改操作符的行为。其中,函数调用操作符operator(),也称为“仿函数”(Functors),允许对象像函数一样被调用。这一特性不仅增强了代码的灵活性和可读性,还在多种编程模式和设计中发挥了重要作用。本文将从定义、用途、实现方法、工作过程与原理等方面,详细解析C++中的operator(),并通过具体示例加以说明。函数调用操作符operator()原创 2025-02-23 20:59:09 · 3542 阅读 · 0 评论 -
C++ 各主流标准详解及其在 Ubuntu 20.04 环境下的应用
C++ 标准由国际标准化组织(ISO)负责制定,旨在确保不同编译器和平台之间代码的兼容性与一致性。自 C++ 诞生以来,标准经历了多次重大更新,每次更新都引入了新的特性和改进,以满足不断发展的编程需求。C++98 是 C++ 的第一个国际标准,于 1998 年发布。它奠定了 C++ 语言的基本特性,规范了语言的语法和标准库。C++03 是对 C++98 的小幅修正和改进,于 2003 年发布。主要目的是修复 C++98 标准中的一些漏洞和模糊之处,没有引入新的语言特性。原创 2025-04-01 21:26:33 · 1247 阅读 · 0 评论 -
深入解析C++智能指针:定义、用途、原理与实用示例
引言智能指针的定义智能指针的种类与特点智能指针的用途与优势智能指针的工作原理与内存管理智能指针的使用方法创建与初始化基本操作与标准库容器的结合实用示例:管理资源的智能指针示例代码代码详解最佳实践与注意事项总结参考资料智能指针是一种类模板,用于管理动态分配的对象,通过智能指针的生命周期自动管理资源的分配与释放。与原生指针不同,智能指针通过RAII(资源获取即初始化)机制,确保资源在智能指针对象生命周期结束时被正确释放,从而防止资源泄漏。原创 2025-02-23 21:08:18 · 1684 阅读 · 0 评论 -
深入理解C++模板类:定义、用途、原理及stdlist示例解析
std::liststd::list是一个模板类,定义在<list>头文件中。它可以存储任何可复制的类型,支持多种操作,如插入、删除、遍历等。主要特点:双向链表:每个元素包含指向前后元素的指针,支持双向遍历。高效的插入与删除:在任何位置插入或删除元素的时间复杂度为常数级别(O(1))。不支持随机访问:不像std::list不支持通过索引直接访问元素,随机访问时间复杂度为线性级别(O(n))。内存使用:每个元素需要额外的指针存储,内存开销较大。原创 2025-02-23 21:00:24 · 1228 阅读 · 0 评论 -
PCL中的半径滤波详解及C++实现示例
半径滤波是一种基于点云中每个点的局部邻域密度进行筛选的滤波方法。其基本原理是通过设定一个半径参数,对于点云中的每一个点,统计其在该半径范围内的邻域点数量。如果某个点在其邻域内的点数少于预设的阈值,则认为该点为噪声或离群点,从而将其滤除。反之,则保留该点。半径滤波作为PCL中一种重要的点云滤波技术,通过基于点的局部密度进行筛选,能够有效去除噪声和离群点,提升点云数据的质量。本文详细介绍了半径滤波的定义、工作原理、使用方法及应用场景,并通过C++示例代码展示了在Ubuntu 20.04环境下的具体实现过程。原创 2025-04-01 21:30:32 · 917 阅读 · 0 评论 -
C++中的auto关键字详解
C++中的auto关键字是一个非常有用的工具,它通过编译器的类型推导机制,减少了程序员手动指定类型的负担。auto不仅简化了代码,提升了可读性和可维护性,还在处理复杂类型(如容器迭代器、函数返回值等)时表现出极大的优势。然而,使用auto时需要注意其使用限制,确保初始化表达式的类型能够正确推导,并注意引用和常量类型的推导。通过合理使用auto,可以写出更加简洁、灵活和高效的代码。原创 2025-04-01 21:28:24 · 999 阅读 · 0 评论 -
深入解析C++中的stdbind:定义、用法及其工作原理
std::bind是C++11引入的标准库函数,位于头文件中。它的主要功能是将一个可调用对象(如函数、成员函数、函数对象等)与一组参数绑定,生成一个新的可调用对象。这个新对象可以在后续的程序中被调用,同时可以预先指定部分参数的值,或重新排列参数的顺序。原创 2025-02-23 20:56:27 · 871 阅读 · 0 评论 -
深入解析DBSCAN聚类算法:原理、应用与C++实现
聚类算法根据数据点之间的相似性,将数据集划分为若干簇。常见的聚类算法包括K-Means、层次聚类、谱聚类等。不同聚类算法在簇的形状、数量、计算复杂度等方面各有优劣。ε(epsilon):定义数据点邻域的半径,用于衡量点之间的距离。MinPts:定义形成核心点所需的最小点数,包括点自身。选择合适的ε和MinPts对于DBSCAN算法的效果至关重要。参数的设定直接影响聚类的结果及算法的性能。点编号x坐标y坐标11.02.022.02.032.03.048.07.058.0。原创 2025-04-01 21:37:35 · 1446 阅读 · 0 评论 -
深入解析C++中的多线程编程与锁机制:概念、实现与应用
多线程(Multithreading)是指在单个进程内同时执行多个线程的能力。每个线程代表程序执行的一个独立路径,能够并发地完成不同的任务。多线程的主要目的是提高程序的并行性和资源利用率,特别是在多核处理器环境中,能够显著提升计算密集型和I/O密集型任务的执行效率。锁(Lock)是一种同步机制,用于控制多个线程对共享资源的访问。通过锁,可以确保在任意时刻,只有一个线程能够访问被保护的资源,从而避免数据竞争。C++中的多线程编程与锁机制是构建高性能、响应迅速的应用程序的重要工具。通过合理使用。原创 2025-02-23 20:58:18 · 920 阅读 · 0 评论 -
深入理解C++中的stdlist:定义、用途、工作原理与实用示例
在C++标准模板库(STL)中,std::list是一个功能强大的双向链表容器,提供了高效的元素插入和删除操作。本文将全面介绍std::list的定义、使用方法、作用、工作过程与原理,并通过具体示例深入解析其在实际编程中的应用。std::list作为C++ STL中的双向链表容器,提供了高效的元素插入和删除操作,适用于特定的应用场景。通过理解其内部结构和工作原理,开发者可以更好地利用std::list来管理复杂的数据集合。此外,掌握与其他STL容器的比较和最佳实践,有助于编写高效、可维护的C++程序。原创 2025-02-23 21:01:58 · 1530 阅读 · 0 评论 -
深入剖析C++中的Intel Thread Building Blocks (TBB)
Intel Thread Building Blocks(TBB)是一个开源的C++模板库,旨在简化并行程序的开发。TBB提供了一套高层次的并行算法、任务调度机制和线程安全的数据结构,使开发者能够轻松地将串行代码转化为并行代码,从而充分利用多核处理器的计算能力。TBB基于任务并行模型,通过将工作负载划分为多个任务,由调度器动态分配给线程执行,充分利用多核处理器的计算能力。TBB的核心组件包括任务调度器、线程池、任务划分策略等。TBB允许开发者定义自定义任务,以实现更复杂的并行逻辑。原创 2025-04-01 21:34:44 · 2251 阅读 · 0 评论 -
深入理解 C++ 中的 this 指针:定义、用途与工作原理
在 C++ 编程中,this指针是一个至关重要的概念,尤其在面向对象编程(OOP)中扮演着重要角色。本文将详细阐述this指针的定义、使用方法、作用、工作过程及其底层原理,并通过具体示例加以说明。this是一个隐含的指针,存在于类的非静态成员函数内部。它指向调用该成员函数的对象自身。换句话说,this指针允许成员函数访问调用它的对象的成员变量和其他成员函数。public:// this 是一个指向当前对象的指针在上述代码中,show成员函数内部的this指针指向调用show的Example对象。原创 2025-02-23 20:59:54 · 1063 阅读 · 0 评论 -
C++中通过对象指针直接访问成员变量与成员函数的详解
通过对象指针访问成员是C++中一种强大而灵活的编程技巧。掌握指针的使用,不仅有助于编写高效的代码,还为理解C++的底层机制和高级特性奠定了基础。在实际编程中,合理运用指针访问成员,将大大提升代码的可维护性和性能。原创 2024-12-30 20:28:08 · 1723 阅读 · 0 评论 -
C++中的占位符:定义、用途及工作原理详解
在C++标准库中,命名空间包含了一组预定义的占位符对象,如_1_2_3等。这些占位符用于在std::bind表达式中标识函数参数的位置。例如,_1代表第一个参数,_2代表第二个参数,依此类推。// 引入占位符命名空间C++中的占位符机制通过与std::bind函数的结合使用,为函数对象的创建和参数管理提供了强大的工具。占位符不仅简化了函数的部分参数绑定过程,还增强了代码的灵活性和可读性。理解占位符的定义、用途及其工作原理,对于编写高效、可维护的C++代码至关重要。原创 2024-12-30 20:26:59 · 2198 阅读 · 0 评论 -
C++源文件与头文件详解:定义、用途与编程规范
在C++编程中,源文件(Source Files)和头文件(Header Files)是组织代码的基本单元。它们各自承担不同的职责,通过合理的划分与使用,不仅能提高代码的可读性和可维护性,还能优化编译效率。本文将详细介绍C++中的源文件和头文件的概念、作用、使用方法、内容安排以及编程规范,并通过示例加以说明。源文件与头文件的合理划分是C++编程的重要实践。通过将接口声明与实现分离,不仅提高了代码的模块化和可维护性,还优化了编译过程。原创 2024-12-30 20:27:36 · 2871 阅读 · 0 评论 -
C++ OpenCV中读取YAML文件的详解:定义、用途与实用示例
在计算机视觉和图像处理领域,OpenCV(Open Source Computer Vision Library)是一个广泛使用的开源库。YAML(YAML Ain’t Markup Language)作为一种简洁且易于阅读的配置文件格式,在OpenCV中被广泛应用于存储和加载配置参数、校准数据、模型参数等。本文将详细解释在C++中如何使用OpenCV读取YAML文件,涵盖其定义、用途、使用方法以及实际示例。定义:YAML是一种人类可读的数据序列化标准,常用于配置文件和数据交换。原创 2024-12-25 10:08:35 · 1384 阅读 · 0 评论 -
C++中的命名规范:定义、用途与最佳实践
命名规范是指在编写代码时,对不同类型的代码实体(如变量、函数、类等)采用一致的命名规则和风格。命名风格:如驼峰式(CamelCase)、蛇形式(snake_case)、帕斯卡尔式(PascalCase)等。命名约定:如变量前缀、后缀的使用,特殊标识符的命名规则等。大小写规则:如首字母大写、小写、全大写等。缩写与全称:对缩写词和全称的处理方式。public:private:// 使用 m_ 前缀表示成员变量100// 全大写,使用下划线分隔// 全大写,使用下划线分隔。原创 2024-12-25 10:16:41 · 1957 阅读 · 0 评论 -
C++ 中使用 new 实例化对象的详细解析
在C++编程中,new操作符用于动态分配内存以实例化对象。与静态或自动内存分配不同,new允许程序在运行时根据需要创建对象,并返回指向该对象的指针。这种动态内存管理方法为程序提供了更高的灵活性和控制力,但同时也要求程序员负责适时释放内存以防止内存泄漏。new在C++中,new操作符是动态内存管理的重要工具,允许程序在运行时灵活地创建和管理对象。然而,使用new也带来了手动内存管理的复杂性和潜在风险,如内存泄漏和悬挂指针。为了提高安全性和便捷性,建议在现代C++编程中优先使用智能指针,如和。原创 2024-12-25 10:09:07 · 692 阅读 · 0 评论 -
C++ 中析构函数的详解
析构函数(Destructor)是一个特殊的成员函数,在对象生命周期结束时自动调用,用于执行清理工作。与构造函数相对应,析构函数的主要任务是释放对象在生命周期内分配的资源,如动态内存、文件句柄、网络连接等。析构函数是 C++ 中管理资源的关键机制,负责在对象生命周期结束时自动执行清理工作。通过正确地定义和使用析构函数,开发者可以有效避免内存泄漏和资源泄漏,提升程序的稳定性和安全性。在面向对象设计中,理解并运用好析构函数,对于实现健壮和高效的代码至关重要。原创 2024-12-25 10:09:43 · 729 阅读 · 0 评论 -
C++中的命名空间(namespace):定义、用途与实现详解
命名空间是一种将标识符(如变量、函数、类等)封装在一个独立作用域中的机制。通过使用命名空间,开发者可以避免不同代码模块之间因同名标识符而产生的冲突。原创 2024-12-25 10:17:14 · 2466 阅读 · 0 评论 -
C++ 多线程环境中对象成员函数的使用详解
多线程环境中的对象成员函数指的是在多线程程序中,通过类的成员函数来执行并发任务。这种方法结合了面向对象编程(OOP)和多线程编程的优势,使得代码更具模块化和可维护性。在C++多线程编程中,使用对象的成员函数作为线程执行入口是一种高效且符合面向对象设计的方法。通过结合成员函数指针,可以方便地在多线程环境中管理和执行复杂的任务。同时,合理使用互斥量和锁机制,确保线程安全,提高程序的可靠性和性能。掌握这一技术,对于开发高性能、多线程的C++应用程序具有重要意义。原创 2024-12-25 10:10:59 · 598 阅读 · 0 评论 -
C++中的argc和argv详解:定义、用途与实用示例
在C++编程中,argc(Argument Count)和argv(Argument Vector)是处理命令行参数的核心机制。它们使程序能够接收并解析用户在命令行中输入的参数,从而增强程序的灵活性和交互性。本文将系统地介绍argc和argv的定义、用途、使用方法、编程规范,并通过示例代码进行详细解释。argc和argv作为C++处理命令行参数的核心机制,提供了灵活的参数传递方式,使程序能够根据用户输入动态调整行为。通过合理的参数解析和错误处理,可以显著提升程序的用户体验和可靠性。原创 2024-12-25 10:12:27 · 4106 阅读 · 0 评论 -
C++中的互斥锁详解:定义、用途、工作原理及stdunique_lock的应用
定义功能自动锁定与解锁:在创建对象时自动锁定互斥锁,在对象销毁时自动解锁。手动控制:可以在对象生命周期内手动锁定和解锁互斥锁。延迟锁定:可以选择在构造时不立即锁定,稍后再锁定。与条件变量的结合:可以与结合使用,实现线程间的条件同步。锁的所有权转移:支持通过移动语义转移锁的所有权。互斥锁在C++多线程编程中扮演着至关重要的角色,确保线程安全、保护共享资源、实现线程同步。作为一种灵活且功能强大的锁管理工具,提供了比更多的控制能力,适用于复杂的同步需求。通过合理使用。原创 2024-12-25 10:13:46 · 1642 阅读 · 0 评论 -
C++中的互斥锁详解:定义、用途、工作原理与实用示例(以stdunique_lock为例)
互斥锁在多线程编程中扮演着至关重要的角色,确保线程安全、保护共享资源、实现线程同步。C++标准库提供了多种互斥锁类型和管理工具,如std::mutex,以满足不同的同步需求。通过本文的详细解释与示例,您应能够理解互斥锁的基本概念、用途、工作原理,并掌握如何在C++中使用进行高效、安全的线程同步。遵循良好的编程规范与注意事项,将有助于编写出更稳定、高效的多线程应用程序。原创 2024-12-25 10:13:06 · 1392 阅读 · 0 评论 -
C++中的构造函数重载(Constructor Overloading):定义、用途与实现
构造函数重载是指在同一个类中定义多个构造函数,这些构造函数具有相同的名称(即类名)但参数列表不同(参数数量、类型或顺序不同)。C++编译器根据调用时传递的参数数量和类型来决定使用哪一个构造函数。构造函数重载是C++面向对象编程中的一个强大特性,允许类根据不同的输入参数提供多种初始化方式。这不仅增强了类的灵活性和可用性,还提高了代码的可读性和维护性。在设计类时,合理利用构造函数重载,可以使类更适应多变的应用场景,满足不同的使用需求。原创 2024-12-25 10:16:10 · 2041 阅读 · 0 评论 -
C++ 中的枚举类(enum class):定义、用法与工作原理详解
在软件开发过程中,枚举类型(Enumeration)作为一种用户自定义的数据类型,用于定义一组具名的整型常量。C++ 提供了传统的枚举(enum)和更为现代化的枚举类(enum class本文将详细探讨 C++ 中的枚举类,包括其定义、使用方法、作用、工作原理,并通过具体示例进行说明。枚举类是在 C++11 标准中引入的,旨在解决传统枚举存在的一些问题,如作用域污染和类型安全性不足。枚举类通过enum classenum class 枚举类名 : 基础类型 {枚举值1,枚举值2,// ...原创 2024-12-25 10:11:53 · 1822 阅读 · 0 评论 -
C++ 中的 typedef:定义、用法与工作原理详解
在C++编程中,typedef是一种用于创建类型别名的关键字。通过typedef,开发者可以为现有的类型定义新的名称,从而提高代码的可读性和可维护性。尽管在现代C++中,using关键字在某些场景下提供了更灵活的类型别名机制,但typedef依然在许多代码库和项目中广泛使用。本文将详细探讨C++中的typedef,包括其定义、使用方法、作用、工作原理,并通过具体示例进行说明。typedef是C++中的一个关键字,用于为现有的类型创建新的名称。typedef 现有类型 新类型名;其中,现有类型。原创 2024-12-25 10:10:28 · 1317 阅读 · 0 评论 -
ROS IMU航向锁定(C++)
在接收到IMU数据的回调函数中,您需要将IMU数据中的四元数转换为欧拉角,以获取当前的朝向角度。然后,比较当前朝向角度和目标朝向角度,根据两者之间的差异来确定转向的方向和角度。话题发布速度控制指令,以调整机器人的方向。您需要设定一个目标朝向角度(假设以弧度为单位),这个角度代表您希望机器人朝向的方向。话题,并在收到IMU数据时,计算当前朝向和目标朝向之间的差异,然后发布速度控制指令到。话题的订阅者,用于接收IMU数据,又是。根据当前朝向和目标朝向的差异,向。话题,以调整机器人的朝向。原创 2024-06-11 12:56:19 · 640 阅读 · 0 评论 -
C++ 程序块和作用域
C++中的变量和作用域是编程的基础概念,正确理解和使用它们对编写清晰、有效和可维护的代码至关重要。通过控制变量的作用域,可以提高程序的安全性和可读性,避免命名冲突和不必要的全局依赖。函数体:每个函数都是以程序块的形式定义的,其中包含了函数的执行语句。// 函数体程序块int x = 10;控制流语句:在if语句、switch语句、循环语句(如forwhiledo-while)中使用程序块来定义要执行的语句序列。// if语句程序块限制变量作用域。原创 2024-03-25 21:57:28 · 1256 阅读 · 0 评论 -
ROS 获取激光雷达数据(C++实现)
每当接收到新的激光雷达数据时,它会打印出接收到的测量值数量。请确保你的激光雷达设备或相应的仿真器正在运行,并发布到。的一个简单示例,该节点订阅名为。在运行此节点时,它将订阅。原创 2024-06-10 13:20:52 · 1704 阅读 · 0 评论 -
ROS 话题通信(C++)
在ROS中,话题是一个中立的通信机制,由ROS系统根据节点的发布或订阅需求动态创建和管理。NodeHandle在这个过程中扮演着节点与ROS系统沟通的角色,处理发布和订阅的请求。这种设计使得ROS系统具有很高的灵活性和扩展性,允许节点按需进行通信,而不必担心话题的创建和管理细节。确定话题名称和消息类型在代码文件中include消息类型对应的头文件在main函数中通过NodeHandle大管家发布一个话题并得到消息发送对象生成要发送的消息包并进行发送数据的赋值。原创 2024-05-28 15:17:50 · 2399 阅读 · 0 评论 -
ROS 机器人运动控制(C++实现)
这个节点可以作为控制机器人移动的基础,可以根据实际需求添加更多的逻辑,比如响应传感器数据或用户输入。在ROS中用C++实现一个机器人控制程序,你需要编写一个节点,它订阅传感器数据等输入,发布速度命令到。时,你通常会创建一个Twist消息,设置其线速度和角速度字段,然后将其发布到一个话题,例如。下面是一个C++程序的示例,它创建了一个ROS节点,该节点发布。首先,确保你有一个配置好的ROS环境,并且已经创建了一个名为。首先,确保你有一个配置好的ROS环境,并且已经创建了一个名为。原创 2024-06-17 12:12:08 · 1800 阅读 · 0 评论 -
ROS 获取IMU数据(C++实现)
要使用C++在ROS中获取IMU数据并处理,你需要遵循以下步骤来创建一个名为。来接收和处理IMU数据。此外,我们将使用TF库将四元数转换成欧拉角,并使用。目录下创建一个新的C++文件,例如。的新软件包,并在其中编写一个名为。话题,并使用回调函数。的新软件包,它依赖于。原创 2024-06-13 16:24:11 · 757 阅读 · 0 评论 -
ROS 激光雷达避障(C++实现)
目录下创建一个C++文件(例如。原创 2024-06-24 18:21:02 · 2535 阅读 · 0 评论 -
在Windows上安装WSL2和Ubuntu 20.04以搭建C++开发环境的详细指南
在Windows系统上安装WSL2(Windows Subsystem for Linux 2)并选择Ubuntu 20.04作为Linux发行版,进而搭建C++开发环境,是一种非常实用的配置。这使得在Windows操作系统上可以方便地使用Linux环境进行开发。原创 2024-09-20 12:57:27 · 2149 阅读 · 0 评论
分享