消息队列, 生产与消费
Sunday, August 18, 2024 在 design
描述 问题的产生, 在于一个计算逻辑中的两个柱体 A 和 B 之间存在数据的生产先后顺序, 需要用 A 生成 B 的一个前置数据, 再由 B 输出产生结果, 而 A 中的数据在时间上没有关联性, 即 t 时刻生成的 数据 \(A_t\) 与 t+1 时刻 \(A_{t+1}\) 无关 为了程序主逻辑运行的效率, 对 A 和 B 采用异步执行, 即当 在 A 生成数据后, B再开始运行
C 动态分配二维数组的内存
Sunday, July 21, 2024 在 c++笔记
指针数组 使用指针数组, 每个指针指向一维数组的起始位置 #include <stdio.h> #include <stdlib.h> int main() { int rows = 3; int cols = 4; // 分配行指针数组 double **array = (double **)malloc(rows * sizeof(double *)); if (array == NULL) { printf("Memory allocation …
在 C 函数中建议 move data to heap 时
Saturday, July 20, 2024 在 c++笔记
malloc malloc(memory allocation)函数用于分配指定字节数的内存,并返回指向这块内存的指针。内存未初始化。 #include <stdlib.h> int main() { // 分配内存用于存储10个整数 int *array = (int *)malloc(10 * sizeof(int)); if (array == NULL) { // 处理内存分配失败的情况 return 1; } // 使用分配的内存 for (int i = 0; i …
比较 boost 和 stl
Sunday, June 02, 2024 在 c++笔记
Boost 和 STL(Standard Template Library)是两个非常重要的 C++ 库,它们各自提供了 丰富的功能和工具,但在用途、设计哲学和使用场景上有一些显著的区别。下面是对 Boost 和 STL 的详细比较: STL(Standard Template Library) 标准库的一部分:STL 是 C++ 标准库的一部分,由 ISO/IEC 标准化组织定义。所 有符合标准的 C++ 编译器都必须提供 STL。 核心组件:STL 主要包含容器、算法和迭代器三个核心组件。 …
Polyline 的对象信息里的 `Bulge`
Wednesday, May 29, 2024 在 cadobjectarx
Bulge Bulge 是在多段线(Polyline)对象的弧段(Arc Segment)中存在的一个属性。其是与 多段线的各个顶点(vertices)相关的,用于定义从一个顶点到下一个顶点之间的弧段的弯 曲程度。Bulge 的计算公式为 $$ Bulge = \tan{\frac{\theta}{4}}$$其中 \(\theta\) 是圆心角 Bulge 的性质 正值和负值:Bulge 的正负值决定了弧的方向。如果 Bulge 是正值,弧段逆时针方 向弯曲;如果是负值,弧段顺时针方向弯曲。 值 …
如何理解 python 中的 module
Thursday, May 23, 2024 在 python
1.1 什么是 module module 是一个包含 Python 代码的文件,它可以定义函数、类、变量,也可以包含可执 行的代码。模块是 Python 代码的组织单位,有助于将代码分割成更小、更可管理的部分。 换而言之, Python 中的任意 .py 文件都可以作为模块(module)来使用。 1.2 创建 module 一个模块就是一个 Python 文件(.py 文件),文件名即为模块名。例如,创建一个名为 my_module.py 的文件: # my_module.py def …
CAD 中的曲线 及其 离散化的操作
Wednesday, January 17, 2024 在 cadobjectarx
AutoDesk Document Autodesk.AutoCAD.DatabaseServices.DBObject Autodesk.AutoCAD.DatabaseServices.Entity Autodesk.AutoCAD.DatabaseServices.Curve Autodesk.AutoCAD.DatabaseServices.Arc Autodesk.AutoCAD.DatabaseServices.Circle …