
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
c++17: string_view

C++17: std::optional

摘要: std::span是C++20引入的一种轻量级视图,用于安全访问连续内存序列(如数组、vector等)。它能自动推导容器大小,支持数据修改(不同于std::string_view),提供subspan等切片操作。但需注意,C++26前不包含边界检查,越界访问会导致未定义行为。示例展示了其基本用法、数据指针获取及潜在风险,建议结合size()方法自行管理边界。参考cppreference和M

摘要 本文探讨了C++中的拷贝消除和返回值优化(RVO/NRVO)机制,通过代码示例展示了编译器如何优化不必要的拷贝构造。未优化时,示例代码可能产生四次拷贝构造调用(两次对象初始化各两次),但开启优化后(如gcc -O0或msvc /Od),这些拷贝可被完全消除。文章还介绍了如何通过编译器选项(如gcc的-fno-elide-constructors)禁用优化来观察原始行为。这些优化是编译器行为而

类模板参数推导(CTAD)是C++17引入的特性,允许编译器自动推导模板类的参数类型。例如std::vector arr = {1,2,3}无需显式指定类型。但CTAD不支持聚合类,需手动添加推导指引如Pair(T,U)->Pair<T,U>。此外,类内非静态成员初始化无法使用CTAD,必须显式指定类型。C++20部分解决了聚合类的问题。该特性简化了模板类使用,但仍存在一些限制需

本文介绍了使用C++开源库nlohmann/json进行JSON解析和序列化的方法。作者通过CMake的FetchContent引入该头文件库,并展示了基本的JSON文件解析操作。重点说明了如何为自定义结构体avl_test_case和枚举类型avl_op_tp实现JSON序列化功能:既可以使用NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE宏简化操作,也可以通过特化adl_s

本文介绍了五种I/O模型的特点和实现方式:1)阻塞I/O模型简单直接但会阻塞进程;2)非阻塞I/O通过轮询避免阻塞但消耗CPU;3)I/O多路复用单线程监听多个文件描述符;4)信号驱动I/O通过信号通知数据到达;5)异步I/O完全不阻塞进程。文章通过示意图和代码示例(包括信号处理和POSIX AIO)详细说明了每种模型的实现机制,分析了各自的优缺点,为理解不同I/O模型的工作方式提供了清晰的参考。

本文实现了一个处理器亲和性调度算法,根据任务需求数量和可用处理器编号输出符合优先级的处理器组合。 算法首先将处理器分为两组(0-3和4-7),然后根据任务申请数量num(1/2/4/8)确定优先级规则: num=1时优先级顺序:剩余4个>2个>3个>1个 num=2时优先级顺序:剩余2个>4个>3个 num=4时必须剩余4个 num=8时需要全部8个处理器可用 使用回

投影矩阵和最小二乘法

罗德里格斯公式推导








