自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(406)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++数据结构与算法_大数据处理

本文记录大数据查重处理方法,大数据求topk。

2026-03-07 22:11:31 56 1

原创 C++数据结构与算法_排序算法

本文记录基础排序算法和高级排序算法。基础排序算法包括:冒泡排序,选择排序,插入排序和shell排序,并对四种排序算法做了对比。高级排序算法:快速排序,归并排序,堆排序,并对这三种高级高级排序算法做了对比。

2026-03-07 21:53:09 97

原创 C++数据结构与算法_搜索算法

本文记录C++二分搜索算法。

2026-03-07 21:43:46 237

原创 C++数据结构与算法_双指针法

本文总结了上面刷题时使用的双指针法。

2026-03-04 08:44:40 30

原创 C++数据结构与算法_一致性哈希算法-负载均衡算法

*分布式系统负载均衡算法:**轮回算法,哈希算法,权重比算法,最少链接算法和一致性哈希算法等。其中,一致性哈希算法是分布式系统负载均衡首选算法。一个良好的分布式哈希方案应该具有良好的单调性,即服务节点的增加不会造成大量哈希的重新定位。

2026-03-04 08:40:01 23

原创 C++数据结构与算法_哈希表

总结1:哈希表的优缺点,有点是查询速度快,缺点是需要更多的内存消耗。总结2:分别实现了线性哈希+线性探测,链式哈希,这两种哈希比较。线性哈希表指的是,使用数据来存储元素,增加元素:当装载因子大于0.75时,需要扩容,时间复杂度为O(n),查找时:最坏情况下时间复杂度O(n);多线程情况下,需要对整个哈希表加互斥锁,对于高并发情况下,这导致了并发量较低。链式哈希表指使用一个数组+链表方式实现,每个桶中保存的是一个链表;对于查询时,链式哈希表时间复杂度为O(n);链式哈希表优化:使用红黑树 + 分段锁。

2026-03-03 14:49:20 590

原创 C++数据结构与算法_字符串

本文主要写字符串查找和匹配相关内容,包括bf算法,kmp算法以及字符串刷题。

2026-02-27 22:39:42 682

原创 C++数据结构与算法_队列

本文介绍栈数据结构,并刷题巩固。

2026-02-27 09:53:40 529

原创 C++数据结构与算法_栈

之前两篇文件分别记录了线性表之数组和链表的内容,本文记录栈结构。

2026-02-25 20:07:44 680

原创 C++数据结构与算法_线性表_链表

翻转链表:使用头插入法。如果链表没有头节点,那就new一个头结点,使用一个指针指向头结点,另一个指针指向头的下一个节点;然后头部指针和下一个节点指针断开;当p!=nullptr时,依次采用头插入方式插入。核心插入如下:删除倒数第N个节点:使用双指针方法,头指针先移动N个节点,然后两个指针一起移动,判断条件时,p->next!= nullptr时,直接返回。最后q指向的待删除节点的前一个节点。

2026-02-24 20:52:39 780 1

原创 C++数据结构与算法_线性表_数组2_刷题

本文继续记录数据结构数组刷题。

2026-02-13 10:10:20 602

原创 C++数据结构与算法_线性表_数组_概念动态数组,刷题

本文记录数据结构与算法的线性结构—数组,并刷题作为练习。

2026-02-12 18:24:06 632

原创 CMake条件命令if() else() endif()

定义宏macro(MAC)message("参数个数 ARGC = ${ARGC}")message("第一个参数 ARGV0 = ${ARGV0}")message("第二个参数 ARGV1 = ${ARGV1}")message("参数列表 ARGN = ${ARGN}")endmacro()# 调用宏#[[参数个数 ARGC = 4第一个参数 ARGV0 = AA第二个参数 ARGV1 = BB参数列表 ARGN = AA;BB;CC;DD]]

2026-01-14 20:59:42 685

原创 cmake_CMake内置属性解决头文件包含/CMake定义C/C++标准/include_directories()/宏定义

add_compile_definitions() 为当前目录以及子目录下的所有target添加宏定义,相当于在编译时添加 -D MY_MRO=1# 定义一个带值的宏(相当于 #define MAX_BUFFER_SIZE 1024) add_compile_definitions(MAX_BUFFER_SIZE = 1024)

2025-12-26 16:33:23 790

原创 cmake_CMake定义属性define_property()与设置属性

CMake属性(PROPERTY)是影响构建过程的关键概念,它们定义了如何编译源文件、二进制文件的安装位置以及安装程序的打包目录等。CMake属性可以附加到不同的对象上,例如目标(TARGET)、目录(DIRECTORY)、源文件(SOURCE)、缓存变量(CACHE)、安装(INSTALL)、测试(TEST)等。

2025-12-24 09:04:48 826

原创 cmake_查找文件find_file()命令,查找程序find_program()与查找库find_library()

本文介绍CMake查找文件find_file()命令、查找程序find_program()与查找库find_library()。

2025-12-24 08:53:34 712

原创 cmake_CMake打印消息命令message(),CMAKE_SOURCE_DIR、CMAKE_BINARY_DIR,CMAKE_CURRENT_LIST_FILE/DIR/LINE/FILE

CMake定义了环境变量来控制CMake的行为,设置的环境变量仅在当前CMAKE进程中生效,而不影响调用CMake的进行,也不影响整个系统环境,也不会影响后续构建或测试进程的环境。set (ENV{变量名} [值])$ENV{变量名}

2025-12-21 23:30:22 811

原创 cmake_策略命令cmake_policy() 和各种内置变量

本文记录cmake。

2025-12-20 10:54:20 1142

原创 cmake_file(GLOB)详解

本文介绍cmake的file()文件操作函数,该函数功能强大,可以读文件,写文件,复制,删除,重命名等操作。

2025-12-20 10:34:11 1016

原创 cmake_第二章 CMake基础语法_cmake列表命令list(),字符串string()和aux_source_directory()

本文介绍cmake列表命令list(),字符串string()和aux_source_directory()

2025-12-18 23:20:37 839

原创 cmake_第二章 CMake基础语法_set(),缓存变量set(CACHE)

CMake中的变量分为普通变量和缓存变量,本节讲解普通变量。CMake变量是 CMake 语言中的基本存储单元,变量的值是字符串类型。变量名称区分大小写,变量名称几乎可以包含任何文本,但建议使用仅由 “字母数字”加上“_”和“-”组成的名称。字母 数字 _ - 下划线和中划线。CMake中使用set() 定义一个变量,下面开始逐步介绍set()的使用。在cmake 编译时,使用-D(define)可自定义变量,然后在cmake文件中引用该变量。-D选项放在-P选项之前,理解为先定义再使用。

2025-12-18 22:59:18 757 1

原创 cmake_第二章 CMake基础语法_cmake生成器,cmakegui构建和add_subdirectory()

本文介绍cmake第二章,cmake生成器,cmakegui构建和add_subdirectory()

2025-12-17 23:56:08 1118

原创 cmake_cmake简介

CMake(Cross-platform Make)是Kitware公司主导的一个开源的、跨平台自动化构建、测试系统。CMake最初是被设计为各种Makefile方言的生成器,如今的CMake为现代构建系统例如Ninja生成构建文件、也可以为Visual Studio 和Xcode等 IDE 生成项目文件。

2025-12-16 23:47:38 899

原创 C++数据结构与算法_数据结构与算法概念_时间复杂度

本文介绍数据结构与算法之时间复杂度。

2025-12-10 14:06:54 1138

原创 C++数据结构与算法_数据结构与算法概念_定义,递归与迭代比较

数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构、散列结构、树形结构和图形结构等。算法 :求解具体问题的步骤描述,代码上表现出来是解决特定问题的一组有限的指令序列。

2025-12-10 13:56:48 1026

原创 C++23新特性_简化隐士移动和auto{}

这是一种语法格式,既传递了右值,又不破坏之前的所有权,让代码变得更简洁。

2025-12-05 10:32:49 299

原创 C++23新特性_#warning 预处理指令

本文介绍C++23新特性之#warning 预处理指令。

2025-12-04 23:11:42 626

原创 C++23新特性_多维下标运算符

C++23支持的多维度下标,相比 [][] 的代理对象模式,[x, y] 是单次函数调用,更容易被编译器内联和优化。

2025-12-04 23:06:26 421

原创 C++23新特性_if consteval

if consteval 修复了std::is_constant_evaluated 容易被误用于 if constexpr 的陷阱,使用起来也更简洁。代码一目了然:如果是编译期间走一条路,运行期间走一条路。建议在C++23下,分编译期和运行期的场景,使用if consteval 替换 std::is_constant_evaluated().

2025-12-04 23:01:43 460

原创 C++23新特性_Deducing this

Deducing this 是C++这门古老语言迈向现代化的又一重要步伐。主要特性总结如下:1 去重:它用一个模板函数替代了 const/non-const/lvalue/rvalue 的四个重载。2 解耦:它让 CRTP 模式不再依赖复杂的模板继承语法,实现了真正的“鸭子类型”混入。3 赋能:它让 Lambda 递归变得轻而易举。

2025-12-04 22:56:23 884

原创 C++20新特性_std::is_constant_evaluated() 编译期判断

本文记录C++20新特性之std::is_constant_evaluated()。

2025-12-04 11:20:28 255

原创 C++20新特性_原子智能指针,std::source_location和位操作函数

在多线程环境下,可以使用 原子智能指针来确保线程安全,这虽然比裸指针的原子操作慢,但比使用mutex 保护 shared_ptr快,也可以避免死锁风险。

2025-12-03 22:19:54 1296

原创 C++20新特性_std::jthread和chrono库扩展

jthread 是现代C++多线程的首选,jthread更安全,利用了RAII特性,避免了忘记join()导致的崩溃。内置 std::stop_token,提供了一套标准的、线程安全的停止机制,替代了过去常用的 bool is_running 标志位。建议,在C++20以后的项目中使用jthread代替thread.

2025-12-03 22:11:04 1094

原创 C++20新特性_std::format和span

性能:format的性能优于iostream,在某些情况下超过 printf.语法:format结合了python风格的易用性和C++的高性能,是现代C++开发中处理字符串的首选工具。span优点:零拷贝,统一接口(连续内存都可以使用span处理),类型安全,支持切片。需要注意的是,使用span时,避免悬空引用。

2025-12-03 22:00:42 874 1

原创 C++20新特性_[[likely]] , [[unlikely]]属性和特性测试宏

以下是常用的C++20特性测试宏。

2025-12-03 08:23:27 1006

原创 C++20新特性_[[no_unique_address]]属性

本文记录C++20新特性之[[no_unique_address]]属性。

2025-12-02 23:17:46 446

原创 C++20新特性_Lambda 改进

本文记录C++20新特性之Lambda 改进。

2025-12-02 23:13:45 497

原创 C++20新特性_范围 `for` 循环的初始化语句

本文记录C++20新特性之范围 `for` 循环的初始化语句。

2025-12-02 23:08:47 334

原创 C++20新特性_consteval 和 constinit

本文记录C++20新特性之consteval 和 constinit。

2025-12-02 23:06:01 388

原创 C++20新特性_指定初始化 (Designated Initializers)

本文记录C++20新特性之指定初始化 (Designated Initializers)。

2025-12-02 23:02:47 216

汇编语言是学习高级语言的基础,也是了解计算机体系结构的基础。学习汇编语言后,对各章节进行了简要的总结,方便记忆和查看。

对每章节的知识点都进行了总结,方便查看 第二章 :寄存器 第三章: 寄存器(访问存储器) 第四章:第一个程序 第五章:[bx]和loop指令 第六章 :包含多个段的程序 第7章: 更灵活的定位内存地址的方法 第八章 :数据处理两个问题 第九章 :转移指令 第10章 :call和ret指令 第十一章 :标志寄存器 第十二章: 内中断 第十三章:略 第十四章: 端口 第16章第17章 这两章内容很简单,看书。

2022-05-21

空空如也

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

TA关注的人

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