自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 6.2. CUDA Runtime

6.2. CUDA Runtime

2025-07-14 14:30:01 232

翻译 6. Programming Interface

其值为 1000。使用驱动 API 的应用程序必须将代码编译到单独的文件中,并在运行时显式加载和执行最合适的文件。

2025-07-13 21:43:03 10

翻译 5. Programming Model

CUDA C++ Programming Guide第五章Programming Model的翻译

2025-07-13 12:37:39 19

原创 NVIDIA GPU架构代号

以下是按照发布年份列出的 NVIDIA GPU 架构代号以及对应的主计算能力相关信息:

2025-07-08 13:41:03 392

原创 c++头文件<cstdint>中的uintptr_t

return 0;

2025-07-05 11:20:34 244

原创 https和http有什么区别

HTTPS 是 HTTP 的安全增强版,通过加密和身份验证解决了 HTTP 的安全漏洞,已成为现代网络通信的主流协议。两者的核心差异在于安全性设计,而应用场景的选择则取决于对数据保护的需求。

2025-07-03 10:38:31 799 1

原创 TCP三次握手四次挥手的过程

因 TCP 是全双工通信(双方可同时发送数据),服务器收到客户端的 FIN 后,可能还需发送剩余数据,因此需先回复 ACK(确认客户端关闭),待数据发送完成后再发送 FIN(自身关闭),这两步无法合并,故需四次交互。通过这两个过程,TCP 实现了 “可靠连接” 的基础:连接建立时确保双方通信能力正常,连接释放时确保资源不泄露,为后续的可靠数据传输(重传、拥塞控制等)提供了前提。当数据传输完成,需通过四次挥手释放连接(全双工连接需双方分别关闭读写通道)。(避免历史报文干扰)。

2025-07-03 10:25:48 689

原创 TCP和UDP的区别

TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是 TCP/IP 协议栈中两种核心的传输层协议,它们在设计目标、工作原理和适用场景上有显著区别。这种组合兼顾了实时性和关键数据的可靠性。

2025-07-03 10:09:01 905

原创 模运算优化

模运算优化

2025-06-29 19:39:21 920

原创 std::aligned_storage 和std::aligned_storage_t

目录std::aligned_storage 和 std::aligned_storage_t 详解一、概述二、std::aligned_storage语法三、std::aligned_storage_t语法四、核心功能与应用场景1. 创建对齐内存缓冲区2. 自定义内存池3. 类型擦除(Type Erasure)4. 实现 placement new五、使用示例六、注意事项七、与其他对齐工具的对比总结 和 是 C++ 标准库中用于创建对齐内存缓冲区的工具,主要用于实现自定义内存管理、类型擦除(Type E

2025-06-29 18:13:49 776

原创 std::align函数

std::align是 C++11 标准库中用于内存对齐的重要函数,主要用于在未对齐的内存块中找到符合特定对齐要求的地址。它在内存分配、自定义内存管理以及高性能编程中有着重要应用。基本功能与原型std::align参数说明alignment:所需的对齐字节数,必须是 2 的幂(如 4、8、16 等)。size:需要分配的对象大小(字节数)。ptr:指向内存块起始地址的指针(引用类型,会被函数修改)。space:内存块的剩余可用空间(引用类型,会被函数修改)。返回值。

2025-06-29 17:52:21 319

原创 实现make_power_of_two函数

函数通过精妙的位运算,在常数时间内将任意正整数转换为大于等于它的最小 2 的幂。这种算法在需要 2 的幂容量的数据结构(如哈希表、内存池)中广泛应用,兼具效率和简洁性,是位运算优化的经典案例。

2025-06-29 16:55:57 1012

原创 如何理解c++的LegacyInputIterator

(旧版输入迭代器)是一种迭代器概念(Iterator Concept),定义了迭代器的最基本能力。它是所有迭代器类型的基础,为更高级的迭代器(如前向迭代器、双向迭代器等)提供了必要的接口规范。LegacyInputIterator 是 C++ 迭代器的基础接口,定义了单向、单次遍历的最小能力集。C++20 引入了基于概念(Concepts)的新迭代器模型,替代了旧的迭代器标签(如。在实际开发中,应根据需求选择合适的迭代器类型,避免因使用低级迭代器导致功能不足或性能问题。输入迭代器的操作(如。

2025-06-28 18:10:49 510

原创 std::pre和std::advance等<iterator>中的常用迭代器操作函数

是两个常用的迭代器操作函数,用于移动迭代器位置。此外,该头文件还提供了许多其他实用的迭代器工具。返回两个迭代器之间的元素个数。对于随机访问迭代器,复杂度为 O (1);否则为 O (n)。这些函数提供了强大而灵活的迭代器操作能力,是 C++ 标准库中处理容器和算法的重要工具。返回容器的开始和结束迭代器,支持普通数组和标准容器。),复杂度为 O (1);否则为 O (n)。创建一个反向迭代器,用于从后向前遍历容器。返回一个迭代器,指向原迭代器的前。),但对于随机访问迭代器(如。在容器的指定位置插入元素。

2025-06-28 17:15:09 650

原创 [[maybe_unused]] 的作用

是 C++17 引入的一个实用属性,用于显式声明 “未使用的代码是有意为之”,避免编译器警告干扰开发。合理使用该属性可提高代码的可读性和可维护性,尤其在库开发、接口实现和模板编程中具有重要价值。,用于告诉编译器某个变量、函数、类等实体可能不会被使用,但这是开发者的有意设计,不需要发出警告。部分 IDE(如 CLion)会识别该属性并调整代码提示(如不再标记为灰色)。当变量、参数或类型未被使用时,编译器通常会发出警告(如 GCC 的。仅在明确需要抑制警告时使用,过度使用可能掩盖真正的逻辑错误。

2025-06-28 16:04:16 383

原创 用pthread_setschedparam设置调度策略

函数用于设置线程的调度策略和优先级。POSIX 标准定义了三种基本调度策略,不同操作系统可能会扩展额外的策略。合理选择调度策略和优先级是实现高性能、高可靠性多线程应用的关键。实时策略应谨慎使用,避免影响系统整体稳定性。不当使用高优先级实时线程可能导致系统响应变慢甚至无响应(如所有 CPU 时间被高优先级线程占用)。)通常需要特权权限(如 root 或 CAP_SYS_NICE 能力)。实时策略的优先级范围为 1~99,数值越高优先级越高;POSIX 标准定义的三种调度策略通过。)可能降低代码的可移植性。

2025-06-26 19:14:27 696

原创 cudaStreamCreateWithPriority和cudaDeviceGetStreamPriorityRange

在x86 3060显卡、JetsonOrin、DriveOrin上面输出的都是0到5.

2025-06-26 18:37:10 311

原创 浅析std::atomic<T>::compare_exchange_weak和std::atomic<T>::compare_exchange_strong

某些硬件(如 ARM)的 CAS 操作可能因缓存一致性协议(如 MESI)或线程调度导致虚假失败,但硬件实现更高效。:整个操作是原子的(不可中断),用于实现无锁数据结构(如队列、栈)。操作,属于无锁编程的基础操作。:传入期望值,失败时会被更新为原子变量的当前值。:自旋锁、无锁队列等需反复重试的操作。(如实现无锁栈/队列),非循环场景用。:单次检查或无需重试的逻辑。:交换成功时设置的目标值。(成功时的内存序)和。(失败时的内存序)。

2025-06-23 21:51:58 428

原创 leetcode 291. Word Pattern II和290. Word Pattern

用stringstream分割字符串。

2025-06-20 19:01:27 306

原创 判断当前环境是大端还是小端?

【代码】判断当前环境是大端还是小端?

2025-06-19 14:42:20 421

原创 leetcode 530. Minimum Absolute Difference in BST和783. Minimum Distance Between BST Nodes

【代码】leetcode 530. Minimum Absolute Difference in BST和783. Minimum Distance Between BST Nodes。

2025-06-18 21:18:22 260

原创 leetcode 98. Validate Binary Search Tree和700. Search in a Binary Search Tree

【代码】leetcode 98. Validate Binary Search Tree和700. Search in a Binary Search Tree。

2025-06-18 20:53:42 176

原创 222. Count Complete Tree Nodes

利用完全二叉树的性质。

2025-06-17 18:19:46 139

原创 leetcode 101. Symmetric Tree\100. Same Tree\572. Subtree of Another Tree

【代码】leetcode 101. Symmetric Tree\100. Same Tree\572. Subtree of Another Tree。

2025-06-17 16:34:26 351

原创 c++类型擦除

类型擦除是 C++ 中实现 “运行时泛型” 的强大技术,通过隐藏具体类型信息,提供统一接口,使代码更灵活、更具扩展性。选择合适的实现方式(继承、

2025-06-15 22:37:19 1005 1

原创 std::shared_ptr引起内存泄漏的例子

是 C++ 中用于管理动态内存的智能指针,通过引用计数机制自动释放对象。但在某些场景下,它仍可能导致内存泄漏。可有效避免这些问题。在实际开发中,应尽量避免手动管理原始指针,确保所有动态内存都由智能指针统一管理。,常见于循环引用和错误的指针管理。内存泄漏的核心原因是。

2025-06-14 21:41:59 409

原创 一个模板元编程示例

组件作用示例输入→输出Fun_<true>添加左值引用int → int&移除所有引用Res_专用移除引用工具。

2025-06-13 15:24:43 558

原创 968. Binary Tree Cameras

如果不判断整个树的根节点是否被覆盖,则无法通过下面这种情形。要从下往上处理,所以框架是后序遍历。

2025-06-12 23:59:14 606

原创 135. Candy

考虑右边的比左边大的情况,必须从前到后遍历。考虑左边的比右边大的情况,必须从后到前遍历。先考虑那种情况都可以。

2025-06-12 16:59:57 217

原创 134. Gas Station

【代码】134. Gas Station。

2025-06-12 16:49:29 460

原创 406. Queue Reconstruction by Height

用vector自己的insert函数,位置指定用迭代器。随机迭代器支持+n操作。然后按照直接插入排序的想法,将每个人插入到他应该到达的位置。不过寻找插入位置仍然是O(n)的时间复杂度。先按照身高从大到小排序,身高相等的k小的站前面。插入会很耗时,时间复杂度是O(logn+n^2)复用输入数据people,手写直接插入排序。

2025-06-12 16:28:03 519

原创 45. Jump Game II

正向查找可到达的最大位置。时间复杂度O(n^2)

2025-06-11 20:27:48 305

原创 1005. Maximize Sum Of Array After K Negations

三种方法都是贪心。

2025-06-11 20:14:43 366

原创 55. Jump Game

【代码】55. Jump Game。

2025-06-10 23:59:13 177

原创 376. Wiggle Subsequence

【代码】376. Wiggle Subsequence。

2025-06-10 23:31:44 368

原创 leetcode 108. Convert Sorted Array to Binary Search Tree和1382. Balance a Binary Search Tree

这两道题构建平衡二叉树的方法是一模一样的。

2025-06-04 15:25:41 271

原创 leetcode 455. Assign Cookies和2410. Maximum Matching of Players With Trainers

这道题和上面的是一模一样的。

2025-06-04 14:57:57 286

原创 23. Merge k Sorted Lists

【代码】23. Merge k Sorted Lists。

2025-06-02 23:58:57 440

原创 22. Generate Parentheses

【代码】22. Generate Parentheses。

2025-06-01 16:39:12 219 1

原创 52. N-Queens II

这道题与第51题是一样的。

2025-06-01 15:43:08 359

空空如也

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

TA关注的人

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