自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 【C++】volatile的用法(详解)

在C++中,volatile关键字是一种类型修饰符,用于指示编译器一个变量可能会被意想不到地改变,因此编译器不应该对该变量进行优化。在嵌入式系统编程、多线程编程或与硬件交互时,volatile经常被使用。这是因为这些环境中,变量的值可能会被外部因素修改,而不仅仅是程序代码本身。

2025-03-18 21:06:09 308

原创 【C++】boolalpha的用法(详解)

在C++中,boolalpha是一个流操纵符,用于控制布尔值在输出流中的表示方式。当使用boolalpha时,布尔值true和false会被输出为字符串"true"和"false",而不是默认的数值1和0。boolalpha可以用于std::cout(标准输出流)以及其他流对象,比如等。下面是对boolalpha。

2025-03-18 20:41:25 257

原创 【C++】memcpy函数、memmove函数和memset函数的用法(详解)

在C++中,memcpymemmove和memset是用于操作内存的标准库函数。它们在<cstring>头文件中定义,主要用于处理原始内存块。

2025-03-18 20:39:24 259

原创 【C++】搜索系列——记忆化搜索

记忆化搜索是一种用于优化递归算法的技术,特别适用于解决具有重叠子问题的问题。通过存储已经计算过的子问题结果,避免重复计算,从而显著提升效率。

2025-03-16 10:11:25 281

原创 【C++】递归与递推(详解)

递归是一种函数直接或间接调用自身的方法。在递归中,问题被分解为更小的子问题来解决,直到达到一个最简单的基本情况(Base Case),然后通过返回值逐步构建最终结果。递推是通过迭代或循环来解决问题的方法。通常是从基本情况开始,逐步计算出更复杂的情况,直到得到最终结果。递归和递推各有优劣,选择哪种方法需要根据具体问题、约束条件以及性能要求来决定。对于容易出现重复计算的情况(如斐波那契数列),递归的性能可能无法满足需求,而递推则会更高效。而对于自然适合分治或树状结构的问题,使用递归来实现逻辑可能更加直观清晰。

2025-03-16 10:06:46 1284

原创 【C++】回溯算法(详解)

回溯算法是一种通过逐步构建解决方案并在发现不符合条件时回退的算法技术。它通常用于解决组合优化问题,例如求解数独、八皇后问题、图的着色、旅行商问题等。在回溯算法中,我们尝试通过递归构建解空间树,并检查每个节点是否满足问题的约束条件。下面是一个关于八皇后问题的回溯算法的详细介绍及其对应的C++代码示例。八皇后问题要求在8x8的棋盘上放置8个皇后,使得它们互相之间不受攻击(即任何两个皇后都不处于同一行、同一列或同一对角线上)。

2025-03-16 10:02:11 319

原创 【C++】boolalpha的用法(详解)

在C++中,boolalpha是一个流操纵符,用于控制布尔值在输出流中的表示方式。当使用boolalpha时,布尔值true和false会被输出为字符串"true"和"false",而不是默认的数值1和0。boolalpha可以用于std::cout(标准输出流)以及其他流对象,比如等。下面是对boolalpha。

2025-03-16 09:59:22 462

原创 【C/C++】size_t的用法(详解)

size_t是 C 和 C++ 编程语言中定义在<stddef.h>或<cstddef>头文件中的一个无符号整数类型。它通常用于表示对象的大小(以字节为单位)以及数组和容器的索引。size_t的大小足以存储内存中任何对象的大小,因此在处理内存分配、数组遍历等情况时非常有用。

2025-03-15 19:52:09 427

原创 【C++】max_element的用法(详解)

/ 自定义比较函数,用于反向比较(即找出最小值)// 注意这里实际上是反向比较,用于找出“最小”值// 使用自定义比较函数} else {return 0;在这个例子中,我们通过传递一个自定义的比较函数compare给,实际上是在查找最小值,因为比较函数是反向的(即a > b而不是a < b// 自定义比较函数,用于反向比较(即找出最小值)// 注意这里实际上是反向比较,用于找出“最小”值// 使用自定义比较函数} else {return 0;

2025-03-15 18:16:43 591

原创 【C++】transform函数的用法(详解)

是 C++ 标准库中的一个算法函数,它位于头文件中。这个函数用于对容器(如vectorlist等)中的元素进行某种形式的转换,并将结果存储到另一个容器中。提供了单范围和双范围的转换操作。

2025-03-14 22:43:34 311

原创 【C++】哈希表(详解)

在C++中,哈希表(Hash Table)是一种非常重要的数据结构,用于高效存储和查找键值对(key-value pairs)。C++标准库中的提供了一个方便的哈希表实现。下面详细介绍的用法,并附上代码示例。

2025-03-09 10:25:34 416

原创 【C++】搜索系列——深度优先搜索(详解)

‌递归实现‌:简单直观,但对于深度较大的图可能会导致栈溢出。‌非递归实现‌:使用栈避免了递归的深度限制,但代码相对复杂一些。根据具体需求和图的特性选择合适的实现方式。

2025-03-09 09:57:14 332

原创 【C++】搜索系列——宽度优先搜索(详解)

宽度优先搜索算法在遍历过程中使用队列(queue)来记录待访问的节点。将起始节点放入队列中,并标记为已访问。从队列中取出一个节点,访问该节点,并将其所有相邻且尚未被标记的节点加入队列,并标记为已访问。重复步骤2,直到队列为空。

2025-03-07 21:55:25 196

原创 【C++】volatile的用法(详解)

volatile关键字在C和C++编程中用于告诉编译器,某个变量的值可能会在程序控制之外被改变。这意味着编译器不应该对该变量的访问进行优化,因为它假设变量的值可能会在程序的任何其他操作之外发生变化。这通常用于硬件访问、中断服务例程(ISR)或并行编程中。

2025-03-06 21:17:33 364

原创 【C++】erf函数的用法(详解)

误差函数定义为:这个积分没有简单的解析表达式,因此通常通过数值方法计算。

2025-03-03 17:48:07 412

原创 【C++】三维曼哈顿距离(Manhattan)

在三维空间中,曼哈顿距离的计算方式与二维空间类似,只是增加了第三个坐标轴。

2025-03-02 22:26:03 308

原创 【C++】二维曼哈顿距离(Manhattan)

C++曼哈顿距离,又称为城市街区距离,用于计算两个点在标准坐标系上的绝对轴距总和。

2025-03-02 22:19:49 408

原创 【C/C++】jmp_buf的用法(详解)

jmp_buf是 C 和 C++ 标准库中的一个数据类型,用于保存程序的执行环境,以便稍后可以通过longjmp函数跳转回该环境。这种机制通常用于错误处理、特别是在不支持异常处理的 C 语言中。在 C++ 中,虽然更推荐使用异常来处理错误,但在某些情况下(如与 C 代码的互操作或特定的性能需求),jmp_buf仍然可能被使用。

2025-02-22 19:32:00 308

原创 【C++】二分算法介绍+图片(

二分答案(Binary Search for Answer)是一种在单调性基础上通过二分搜索来逼近问题解的算法。它常用于解决一些最优化问题,特别是那些可以通过“判定问题”来验证答案是否可行的问题。以下是对二分答案算法的详细介绍以及一个C++代码示例。

2025-02-22 18:12:24 407

原创 【C++】union的用法(详解)

‌如果你在一个成员赋值后尝试访问另一个成员,结果是未定义的。这通常会导致不可预测的行为或错误。‌

2025-02-16 10:37:01 425

原创 【C++】time函数的用法(详解)

time函数是 C++ 标准库中的一个函数,用于获取当前的系统时间(自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的秒数)。这个函数在<ctime>头文件中定义。通过time函数,你可以获取一个time_t类型的值,表示当前时间的秒数。

2025-02-16 10:01:05 264

原创 【C++】generate的用法(详解)

是 C++11 引入的一个算法,用于为指定范围内的每个元素生成一个新值,并将这些值赋给该范围内的元素。它通常与生成器(如 lambda 表达式、函数对象或函数指针)一起使用,以按照某种规则生成一系列值。是一种非常灵活和高效的填充容器的方法,特别适用于需要根据某种复杂逻辑生成一系列值的场景。下面是一个详细的代码示例,演示如何使用。

2025-02-16 09:42:20 222

原创 【C++】make_any的用法(详解)

是 C++17 引入的一个类型安全的容器,它可以存储任何类型的单个值,并且能够在运行时查询和提取该值。在存储和提取值时提供了类型安全性。提取一个与存储类型不匹配的值,将会抛出一个。类型的对象,并将其包装在一个。对象的辅助函数,它可以简化。使用给定的参数来构造一个。之前,通常需要先使用。

2025-02-16 09:36:55 268

原创 【C++】sort_heap的用法(详解)

头文件中的一个函数,它用于对一个堆(heap)进行排序,将其转换为一个有序序列。只能在已经是一个堆的范围上调用。如果范围不是一个有效的堆,则排序结果将是未定义的。通过重新排列元素来将堆转换为一个有序序列。排序后的序列是以升序排列的(如果使用默认的。如果提供了自定义的比较函数,则排序顺序由该函数决定。或其他适当的堆操作函数来维护堆的性质。之前,目标范围必须是一个有效的堆。等堆操作函数一起使用。

2025-02-16 09:30:15 422

原创 【C/C++】qsort的用法(详解)

虽然它是 C 语言的一部分,但在 C++ 中也可以使用(尽管 C++ 通常推荐使用 STL 中的。可以对任意类型的数组进行排序,只要你提供一个比较函数来定义元素之间的顺序。是一个通用但相对低级的函数。在 C++ 中,更推荐使用 STL 中的。,因为它类型安全、易于使用,并且通常性能也更好。是 C 标准库中的一个通用排序函数,定义在。该函数返回一个整数,表示。

2025-02-16 09:25:45 339

原创 【C++】asm关键字(详解)

C++中的asm关键字用于在C++源码中内嵌汇编语言。以下是asm。

2025-02-16 09:14:10 367

原创 【C++】toupper函数和tolower函数(详解)

toupper和tolower是 C++ 标准库中的两个函数,用于字符的大小写转换。这两个函数都定义在<cctype>头文件中。以下是它们的详细介绍及代码示例。

2025-02-12 11:08:19 886

原创 【C++】isalnum函数及其他关于isalnum的函数(详解)

isalnum是 C++ 标准库中的一个函数,用于检查给定的字符是否为字母或数字。它是<cctype>头文件(在 C 中是<ctype.h>)中的一部分,并且通常与 C 标准库的其他字符处理函数一起使用。isalnum。

2025-02-12 11:00:58 490

原创 【C++】noexcept的用法(详解)

noexcept是 C++11 引入的一个关键字,用于指明一个函数不会抛出异常。它对于提高程序的性能和安全性非常有用,特别是在那些对性能要求极高的场景中,比如实时系统或者高频交易系统。使用noexcept可以帮助编译器进行更好的优化,因为它知道某些函数在执行过程中不会抛出异常,从而在某些情况下生成更高效的代码。

2025-02-12 10:31:19 314

原创 【C++】requires的用法示例(详解)

在C++中, 关键字是C++20引入的概念(Concepts)的一部分,用于定义和约束模板参数。它允许你指定模板参数必须满足的条件,这些条件可以是类型特性、成员函数的存在性、或者其他约束。通过使用,你可以编写更加健壮和易于理解的模板代码。 表达式通常与关键字一起使用,用于定义一个概念。概念是一种特殊的布尔模板,它可以用来检查类型是否满足某些条件。在表达式内部,你可以使用子句来指定这些条件。以下是一个简单的例子,展示了如何使用来定义一个概念,并使用这个概念来约束模板函数:

2025-02-12 09:41:46 292

原创 【C++】C++简单介绍排序算法(大全)

当然,以下是一些常见的C++排序算法的大全及其简要介绍。每种算法都有其特定的时间复杂度、空间复杂度以及适用场景。

2025-02-12 09:38:27 1022

原创 【C++】排序算法大全(详解)

C++中常见的排序算法有很多种,每种算法都有其独特的实现方式、时间复杂度和适用场景。

2025-02-12 09:33:25 768

原创 【C++】register的用法(详解)

在C++中,register是一个存储类说明符(storage class specifier),它提示编译器尝试将变量存储在CPU的寄存器中,以便快速访问。然而,这只是一个提示,编译器可以选择忽略这个建议,并根据自己的优化策略来决定变量的实际存储位置。

2025-02-11 21:15:08 643

原创 【C++】reflexpr的用法(详解)

C++中的reflexpr是C++23标准中引入的一项特性,它允许在编译时反射表达式。reflexpr关键字可以用于获取表达式的类型、值等信息,并在编译时生成相应的代码。这一特性极大地增强了C++的元编程能力,使得编写更加灵活和强大的模板代码成为可能。

2025-02-11 21:07:43 295

原创 【C++】动态数组(二维向量vector)

是一种动态数组,可以看作是一个表格或矩阵,其中每个元素都是一个向量(即一维数组)。这种数据结构非常灵活,可以动态调整其大小,并且易于使用标准库提供的各种功能。这些是关于C++二维向量的基本语法和概念。在实际编程中,你可以根据这些概念来编写代码,实现各种矩阵操作、图像处理、数据存储等任务。在C++中,二维向量(通常指。

2025-02-11 20:03:18 678

原创 【C++】的高级输入输出类型(详解)

‌重载输入输出运算符‌:对于用户自定义的类型,可以通过重载<<和>>运算符来实现该类型的输入输出功能。这允许自定义类型以类似于内置类型的方式使用cin和cout进行输入输出。

2025-02-10 10:39:47 780

原创 【C++】输入输出类型大全(详解)

这些输入输出类型和方法为C++程序提供了强大的数据处理能力,可以根据具体需求选择合适的方式进行数据的输入输出操作。请注意,在实际编程中,正确理解和使用这些输入输出类型是非常重要的。

2025-02-10 10:38:03 422

原创 【C++】static关键字的用法(详解)

在C++中,static关键字有多种用途,可以应用于变量、函数、类成员以及类本身。下面是对static。

2025-02-09 20:03:44 350

原创 【C++】window.h头文件里的重要大全(二)

请注意,随着Windows操作系统的更新,某些函数和类型可能会被添加、修改或弃用。因此,在实际开发中,建议查阅最新的Windows API文档以获取最准确和最新的信息。中的许多函数和类型都是与Windows操作系统紧密相关的,因此在编写跨平台程序时需要特别小心,避免过度依赖这些特定的功能。这些函数和类型提供了丰富的接口,使开发者能够编写出功能强大的Windows应用程序。当然,除了之前提到的内容,

2025-02-09 18:49:59 295

原创 【C++】window.h头文件里的重要大全(一)

是一个用于Windows操作系统编程的头文件,它包含了Windows API(应用程序接口)的声明和定义,允许开发者编写与Windows操作系统交互的程序。是Windows特有的头文件,在其他操作系统上(如Linux、Mac OS等)是无法使用的。因此,如果要编写跨平台的程序,最好避免直接依赖。以上内容仅供参考,如需更详细的信息,建议查阅最新的Windows API文档或相关编程书籍。中的函数和数据类型。

2025-02-09 18:48:55 264

epic pen屏幕笔非常好用!

可以用在不会的题目,或者用在上课。

2025-01-23

STL之动态数组的常用使用手册

有vector、map、set等。

2025-01-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除