自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vim 命令速查表

Vim 命令速查表,注释化 vimrc 配置文件,经典 Vim 键盘图,实用 Vim 书籍,Markdown 格式,目录化检索,系统化学习,快速熟悉使用!

2023-02-22 21:16:03 988

原创 Mac配置homebrew

是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。Homebrew主要有四个部分组成: brew、homebrew-core 、homebrew-bottles、homebrew-cask。

2023-02-21 23:08:08 1586

原创 使用lottokit-大乐透24046期

花费 9注 x 2元 = 18元 中奖 5元 亏损 13元 盈利 0元。

2024-04-24 21:45:29 178

原创 使用lottokit-大乐透24045期

花费 9注 x 2元 = 18元 中奖 5元 亏损 13元 盈利 0元。

2024-04-22 21:46:34 201

原创 使用lottokit-大乐透24044期

花费 9注 x 2元 = 18元 中奖 0元 亏损 18元 盈利 0元。

2024-04-20 21:39:57 126

原创 笔试-动态规划算法突破

在理解了01背包和完全背包后,记住动态规划五部曲,遇到需要使用动态规划解决的问题时,就是思考如何转化到相应的问题上,去书写代码了。

2024-04-19 17:13:55 539

原创 笔试-回溯算法突破

组合问题:元素不重复取,backtracking(…, i + 1)切割问题:元素不重复取,backtracking(…, i + 1)子集问题:元素不重复取,backtracking(…, i + 1)排列问题:元素判重, 需要使用used数组标记棋盘问题:二维矩阵回溯。

2024-04-19 16:38:36 837

原创 面试-递归与迭代的区别与联系

递归和迭代是解决问题的两种基本方法,它们在许多情况下可以互换使用,但各自具有独特的特点和适用场景。理解它们之间的区别和联系对于选择合适的解决方案非常重要。

2024-04-19 15:34:58 384

原创 笔试-递归算法突破

递归通常用于解决可以被分解为多个子问题的问题,其中每个子问题与原问题具有相同的形式。递归算法的关键在于定义递归结束的条件,即基准情况(base case),以防止无限递归和栈溢出。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

2024-04-19 15:29:30 208

原创 笔试-双指针算法突破

双指针技术是一种常用的算法技术,用于解决数组或链表中的问题,通常能以较低的时间复杂度解决问题。双指针可以被分为几种类型,包括等。这里,我将解释这些类型并提供一些示例问题及其解决方案。

2024-04-19 15:15:36 126

原创 笔试-二分算法突破

二分基础选区间二分边界看左右,看谁不等谁,等右得减一二分贪心须检查

2024-04-19 14:57:04 376

原创 使用lottokit-大乐透24043期

花费 9注 x 2元 = 18元 中奖 0元 亏损 18元 盈利 0元。

2024-04-17 21:43:55 112

原创 使用lottokit-大乐透24042期

花费 9注 x 2元 = 18元 中奖 5元 亏损 13元 盈利 0元。

2024-04-15 22:23:37 131

原创 使用lottokit-大乐透24041期

花费 9注 x 2元 = 18元 中奖 0元 亏损 18元 盈利 0元。

2024-04-15 13:52:41 117

原创 使用lottokit-大乐透24040期

花费 9注 x 2元 = 18元 中奖 5元 亏损 13元 盈利 0元。

2024-04-15 13:50:56 164

原创 使用lottokit-大乐透24039期

花费 9注 x 2元 = 18元 中奖 25元 亏损 0元 盈利 7元。

2024-04-15 13:39:20 125

原创 大乐透挑战

这是一个大乐透推荐号码的专栏,不保证中奖,仅供娱乐

2024-04-15 13:27:24 273

原创 python魔法函数示例

在 Python 中,魔法函数(也称为特殊方法)是以双下划线(__)开头和结尾的方法。它们允许开发者定义类的行为。

2023-12-07 17:43:47 179

原创 打包调试和发布

默认情况下,CMake 的模型是构建目录仅包含单个配置,无论是 Debug、Release、MinSizeRel 还是 RelWithDebInfo。但是,可以设置 CPack 来捆绑多个构建目录并构建一个包含同一项目的多个配置的包。经过第一个练习,大家对于基本的使用应该已经掌握了,由于代码过多,在文档中详细介绍太过于啰嗦,大家可以自行下载代码参考。首先,我们要确保调试和发布版本对将安装的库使用不同的名称。现在调试和发布版本都已完成,我们可以使用自定义配置文件将两个版本打包到单个版本中。

2023-10-19 00:33:54 102

原创 添加导出配置

至此,我们已经为项目生成了可重定位的 CMake 配置,可以在项目安装或打包后使用。如果我们希望我们的项目也可以从构建目录中使用,我们只需将以下内容添加到顶层的底部。CMake 想说的是,在生成导出信息的过程中,它将导出一条与当前机器本质上相关的路径,并且在其他机器上无效。在此期间, 我们添加了打包这些信息的功能,以便将其分发给其他人。下一步是添加必要的信息,以便其他 CMake 项目可以使用我们的项目,无论是来自构建目录、本地安装还是打包时。因此,让我们继续将一个新文件添加到名为的项目的顶层,

2023-10-19 00:33:09 108

原创 选择静态或共享库

此时,如果您构建所有内容,您可能会注意到链接失败,因为我们将没有位置无关代码的静态库与具有位置无关代码的库组合在一起。经过第一个练习,大家对于基本的使用应该已经掌握了,由于代码过多,在文档中详细介绍太过于啰嗦,大家可以自行下载代码参考。使用 CMake 文档,你能找到一个帮助模块来简化这个过程吗?为了实现这一点,我们需要添加BUILD_SHARED_LIBS。在本节中,我们将展示如何BUILD_SHARED_LIBS。接下来,我们需要为静态库和共享库指定输出目录。数学函数/MathFunctions.h。

2023-10-19 00:32:29 58

原创 打包安装程序

接下来假设我们想要将我们的项目分发给其他人以便他们可以使用它。这与我们之前在 中所做的安装略有不同,我们之前安装的是从源代码构建的二进制文件。在此示例中,我们将构建支持二进制安装和包管理功能的安装包。为了实现这一目标,我们将使用 CPack 创建特定于平台的安装程序。具体来说,我们需要在顶级文件的底部添加几行。接下来,我们将一些 CPack 变量设置为存储该项目的许可证和版本信息的位置。经过第一个练习,大家对于基本的使用应该已经掌握了,由于代码过多,在文档中详细介绍太过于啰嗦,大家可以自行下载代码参考。

2023-10-19 00:31:46 55

原创 添加自定义命令和生成的文件

经过第一个练习,大家对于基本的使用应该已经掌握了,由于代码过多,在文档中详细介绍太过于啰嗦,大家可以自行下载代码参考。查看该文件后,我们可以看到该表是作为有效的 C++ 代码生成的,并且输出文件名作为参数传入。在本节中,我们将在构建过程中创建表,然后将该表编译到我们的应用程序中。可执行文件,然后将其作为构建过程的一部分运行。我们还必须将当前的二进制目录添加到包含目录列表中,假设,出于本教程的目的,我们决定永远不想使用平台。配置项目,然后使用您选择的构建工具构建它。. 然后,将适当的命令添加到文件中以构建。

2023-10-19 00:31:02 56

原创 添加系统自省

宏用于检查编译器是否支持特定的C++语法或功能,以便在CMake配置中进行条件化处理。例如,你可以使用它来检查是否支持C++11或更高版本的标准,或者是否支持某些C++库或功能。是 CMake 中的一个宏,用于检查给定的 C++源代码片段是否可以成功编译。经过第一个练习,大家对于基本的使用应该已经掌握了,由于代码过多,在文档中详细介绍太过于啰嗦,大家可以自行下载代码参考。这个宏是CMake中的一个有用工具,可以在配置过程中检查编译器的功能,以确保项目的C++源代码可以正确编译。在这个示例中,我们使用。

2023-10-19 00:30:08 45

原创 添加对测试仪表板的支持

CTest 通常与 CMake 一起使用,它允许你自动运行各种类型的测试,生成详细的测试报告,以及进行测试相关的任务。命令通常用于将重复的配置提取到单独的 CMake 文件中,以便在不同的项目部分或不同的子项目中重复使用。通常,包含的文件可以定义变量、函数、宏,或者执行各种配置操作,以便项目的构建和安装得以正确执行。一旦包含了文件,它的内容将被合并到包含它的 CMake 文件中,并在构建过程中执行。通过集成测试到项目中,你可以自动化测试过程,快速发现问题,减少手动测试的工作,并确保代码的正确性。

2023-10-19 00:29:29 48

原创 安装和测试

命令非常有用,因为它允许你定义项目的安装策略,以便将构建后的文件和目标复制到指定的位置,例如系统目录或自定义目录,以便用户或其他项目可以访问它们。是 CMake 的测试驱动工具,用于运行和管理项目中定义的测试。是一个非常强大的工具,它可以帮助你管理项目中的测试,运行它们,并生成详细的测试报告。命令,你可以轻松地集成测试流程到你的 CMake 项目中,以确保项目在开发和部署过程中具有一致的质量。命令通常在项目的 CMakeLists.txt 文件中使用,以便在构建和测试过程中执行所需的测试。

2023-10-19 00:28:49 53

原创 添加生成器表达式

Generator Expressions 在 CMake 中提供了灵活的方式来根据不同条件自定义构建过程,使构建系统适应不同的需求和平台。它们通常在条件编译、不同的构建配置和目标属性之间提供了精细的控制。它们允许你在构建时根据不同的生成器和目标属性来生成不同的编译和链接选项。:你可以使用 Generator Expressions 访问目标的属性,以便在不同情况下配置目标。命令中的 Generator Expressions 来根据不同的条件链接不同的库。这将在 Release 构建配置下链接。

2023-10-19 00:28:02 52

原创 添加库的使用要求

命令非常有用,因为它允许你为不同的目标设置不同的链接器选项,以根据项目的需求和目标的不同进行配置。命令非常有用,因为它允许你为不同的目标设置不同的编译选项,以根据项目的需求和目标的不同进行配置。命令非常有用,因为它允许你为不同的目标配置不同的源文件,以根据项目的需求和目标的不同进行定制。这允许你为不同的目标指定不同的源文件,以根据项目的需求进行配置。,你可以确保项目在不同的计算机上和不同的构建目录中都可以正确地找到源文件和头文件的路径,从而提高项目的可移植性。至此,我们已经了解了在项目中创建和使用库。

2023-10-19 00:27:16 57

原创 CMake添加库

它提供了一个相对于项目根目录的路径,这使得项目的配置更具可移植性,因为它不依赖于特定的绝对路径。这种方式可以确保项目的可移植性,因为无论在哪个计算机上构建项目,都可以正确地引用源代码和头文件的路径。命令非常有用,因为它允许你在项目中设置编译时宏定义,以根据项目的不同配置或需求进行条件编译。命令是 CMake 配置文件中的重要控制结构,允许你根据条件执行不同的操作,这在配置复杂项目和处理不同情况非常有用。命令创建了一个库目标,你可以将其链接到可执行文件或其他库目标,以便在构建过程中生成所需的目标文件。

2023-10-19 00:26:29 103

原创 构建一个基本项目

本文将介绍 CMake 的一些基本语法、命令和变量。介绍这些概念后,我们将完成一个简单的 CMake 项目。最基本的 CMake 项目是从单个源代码文件构建的可执行文件。对于像这样的简单项目,只需要一个包含三个命令的文件即可。**注意:**虽然 CMake 支持大写、小写和混合大小写命令,但首选小写命令,并将在整个教程中使用。

2023-10-19 00:25:11 64

原创 cmake入门与提升

你或许听过好几种 Make 工具,例如,QT 的,微软的,BSD Make(),,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

2023-10-19 00:24:08 62

原创 Makefile之更新存档

在 Makefile 的情况下,具有具有配方但没有先决条件的双冒号规则的 Makefile 将在每次运行 make 时重新生成,然后在 make 重新开始并再次读取 Makefile 后再次重新生成。因此,为了避免这种情况,make 将不会尝试重新生成作为双冒号规则的目标的 Makefile,它具有一个配方但没有先决条件。如果你知道你的一个或多个 Makefile 不能重新生成,并且你希望阻止 make 对它们执行隐式规则搜索,也许是出于效率的考虑,你可以使用任何阻止隐式规则查找的常规方法来实现。

2023-10-16 23:08:42 54

原创 Makefile之隐式规则

在GNU Make中,通过编写模式规则(Pattern Rule)来定义隐式规则。模式规则与普通规则类似,但其目标包含字符‘%’(只能有一个)。目标被视为匹配文件名的模式;‘%’可以匹配任何非空子字符串,而其他字符只匹配它们自己。先决条件同样使用‘%’来说明它们的名称与目标名称的关系。因此,一个模式规则 ‘%.o : %.c’ 表示如何从另一个文件 ‘stem.c’ 生成任何文件 ‘stem.o’。

2023-10-16 23:08:03 46

原创 Makefile之运行参数

这是make‘-b’, ‘-m’: 这些选项为了与其他版本的make兼容而被忽略。: 将所有目标都视为过时。即使其先决条件的状态不清楚,GNU make 也会继续考虑这些目标,并使其全部重新生成。: 在读取 Makefile 之前切换到目录 dir。如果有多个 ‘-C’ 选项,每个都相对于前一个解释。通常与递归调用 make 一起使用。: 打印除正常处理之外的调试信息。具体的调试级别和类型可以通过参数指定。例如,‘-d’ 相当于 ‘–debug=a’。: 使来自环境的变量优先于 Makefile 中的变量。

2023-10-16 23:07:22 50

原创 Makefile之使用函数

你还可以通过使用内建的makefile函数。

2023-10-16 23:06:32 56

原创 Makefile之条件部分

条件可以比较一个变量的值与另一个变量的值,或将一个变量的值与一个常量字符串进行比较。条件指令控制make实际上在Makefile中看到的内容,因此不能用于控制执行时的操作步骤。结果是,将’CC=gcc’作为make的参数传递不仅会改变使用的编译器,还会改变链接的库。正如这个例子所示,条件在文本级别起作用:条件的行被视为Makefile的一部分,或者根据条件被忽略。这就是为什么Makefile的更大的语法单元,比如规则,可能跨越条件的开始或结束的原因。命令时,make会根据条件选择适当的编译选项来构建程序。

2023-10-16 23:05:37 48

原创 Makefile之使用变量

define指令用于设置变量的值,其语法特殊,允许在值中包含换行符,这对于定义一系列命令和用于eval函数的 Makefile 语法段非常方便。define指令与其他变量定义的工作方式基本相同,只是其语法略有不同。definevalueendef在同一行上,define指令后面跟着被定义的变量名称和(可选的)赋值运算符,然后是换行。变量的值出现在接下来的行中。变量值的结束由一行仅包含单词 “endef” 标志。除了语法上的不同之外,define的工作原理与其他变量定义方式相同。

2023-10-16 23:04:56 160

原创 Makefile之配方规则

你可以使用define指令来定义一个可重复使用的命令序列,然后在多个目标的命令中引用这个定义。这个定义实际上是一个变量,所以名称不能与其他变量名冲突。endef在这个示例中,run-yacc是正在定义的变量名称;endef标志着定义的结束;中间的行是命令。define指令不会扩展定义中的变量引用和函数调用;其中的字符、括号、变量名等等都成为了你正在定义的变量的值。这个示例中的第一个命令对使用该可重复使用命令序列的任何规则的第一个前提条件运行Yacc。Yacc的输出文件总是命名为y.tab.c。

2023-10-16 23:04:18 87

原创 Makefile之显式规则

在Makefile中,通配符(wildcard)是一种用于匹配文件名的模式匹配机制,允许你在规则中使用通配符来匹配一组文件,而不需要逐个列出文件的名称。最后,需要注意的是虚拟目标不应该是一个真实目标文件的前提条件,否则它的命令部分将每次make考虑到该文件时都会被执行。当目标的任何一个常规先决条件发生变化(即文件被修改),或者如果它们中的任何一个不存在,目标将被认为是过期的,需要重新构建。如果分组目标出现在独立目标规则中或另一个分组目标规则中并具有配方,您将会收到警告,并且后者的规则将替代前者的规则。

2023-10-16 23:03:40 88

原创 Makefile之简单介绍

那么 make 将把它的值视为一个由空格分隔的 Makefile 名称列表,这些 Makefile 将在其它 Makefile 之前被读取。上述 Makefile 的结果是定义一个目标 ‘target’,其前提条件是 ‘echo’ 和 ‘built’,就好像 Makefile 包含了 ‘target: echo built’,而不是一个带有规则和配方的规则。如果你想使用一个非标准的名字来命名你的 Makefile,你可以使用 -f 或 --file 选项指定 Makefile 的名字。

2023-10-16 23:02:59 38

空空如也

空空如也

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

TA关注的人

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