logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++20 std::atomic_ref 的核心实现细节解析

是 C++20 引入的原子操作工具,通过引用现有变量实现线程安全操作。替代锁机制,尤其在第三方库集成场景中。若需进一步优化,可结合。适用于大多数场景,避免不必要的同步开销。提供强同步,但可能影响吞吐量。建议在实际项目中优先使用。

文章图片
#c++20#算法#数据结构 +2
c++智能指针转化:static_pointer_cast、dynamic_pointer_cast、const_pointer_cast、reinterpret_pointer_cast 相关函数梳

它们的功能和std::static_cast()、std::dynamic_cast、std::const_cast()和std::reinterpret_cast()类似,只不过转换的是智能指针std::shared_ptr,返回的也是std::shared_ptr类型。由于std::dynamic_pointer_cast和dynamic_cast原理一样,std::static_pointe

文章图片
#c++#算法#开发语言 +2
C++类型强制转换:隐式转换和显式转换

本文介绍了C++中的类型转换机制,包括隐式转换和显式转换。隐式转换发生在混合类型运算、初始化赋值、函数传参等场景中,支持基本类型和用户自定义类的自动转换,以及派生类向基类的向上转型。显式转换则通过四种强制转换运算符实现:static_cast用于常规类型转换和类层次向下转型,const_cast用于去除const/volatile限定,reinterpret_cast实现低级位操作转换,dynam

文章图片
#c++#qt#java +3
C++11智能指针之旅

若将shared_ptr中的引用计数定义成一个指针,当资源第一次被管理时就在堆区开辟一块空间用于存储其对应的引用计数,若有其他对象也想要管理这个资源,那么除了需要这个资源的地址之外,还需要引用计数的地址。此时管理同一个资源的多个对象访问到的就是同一个引用计数,而管理不同资源的对象访问到的就是不同的引用计数,相当于将各个资源与其对应的引用计数进行了绑定。注意:由于引用计数的内存空间也是在堆上开辟的,

文章图片
#c++#开发语言#算法 +3
C++中适用于同步列表的无锁数据结构

本文介绍了四种适用于高并发场景的无锁数据结构:无锁链表、无锁队列、无锁哈希表和无锁栈。这些结构通过原子操作(如CAS)实现线程安全,避免了锁竞争带来的性能损耗。文章分析了各数据结构的实现原理、适用场景和优缺点,重点指出需处理ABA问题。在如何选择方面,建议根据具体应用场景(如任务队列、缓存系统)和性能需求进行权衡,并注意内存序控制和渐进式实现。对于简单场景仍推荐优先使用有锁结构,而高性能需求则适合

文章图片
#c++#数据结构#算法 +2
C++信号量避免死锁攻略

‌计数信号量(std::counting_semaphore)‌:计数器可设置上限,允许多线程同时访问有限资源。std::cout << “哲学家 " << i << " 正在进餐” << std::endl;std::cout << “任务 " << id << " 正在执行” << std::endl;std::cout << “任务 " << id << " 执行完毕” << std::en

文章图片
#c++#数据结构#算法 +1
初解神经网络优化算法

本文概述了神经网络优化算法的主要类型及其特点。首先介绍了机器学习优化的基本目标,即通过降低代价函数来优化模型参数,强调泛化性能而非单纯追求训练集最优解。随后详细盘点了多种优化算法:1)最小二乘法适用于简单模型的解析解求解;2)遗传算法模拟自然选择进行参数优化;3)梯度下降(GD)类算法通过迭代调整参数方向,包括标准GD、随机GD(SGD)及其改进版本如带动量的Momentum、Nesterov加速

文章图片
#神经网络#算法#人工智能 +2
详解神经网络 BP 算法原理

本文详细介绍了神经网络BP算法的原理与实现过程。首先阐述了梯度下降和链式求导法则的基本原理,这是BP算法的数学基础。然后讲解了神经网络的结构组成,包括输入层、隐藏层和输出层,以及神经元输入输出值的计算方法。重点分析了BP算法的执行流程,包含前向传递和逆向更新两个阶段:前向传输计算各层输出值,逆向反馈通过误差反向传播更新权重和偏置。文章推导了权重和偏置的更新公式,并解释了如何利用链式法则将误差从输出

文章图片
#算法#数据结构#神经网络 +4
Android NDK开发详解之调试和性能分析的持续集成环境中的基准测试

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用

文章图片
#android#ci/cd#c++ +2
c++智能指针转化:static_pointer_cast、dynamic_pointer_cast、const_pointer_cast、reinterpret_pointer_cast 相关函数梳

它们的功能和std::static_cast()、std::dynamic_cast、std::const_cast()和std::reinterpret_cast()类似,只不过转换的是智能指针std::shared_ptr,返回的也是std::shared_ptr类型。由于std::dynamic_pointer_cast和dynamic_cast原理一样,std::static_pointe

文章图片
#c++#算法#开发语言 +2
    共 49 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择