C++ 内存映射
介绍   在一个版图集成与分析工具的项目中看到了 一种 C++ 内存映射的用法,觉得非常强,分享一下大致的概念。   随着制造工艺的不断进步,芯片版图文件越来越…
Metal Density
   IC Layout Design,在 (whole)chip Database tape out 之前,需要利用 EAD tools 验证 IC Layout,即版图上的 m…
分布式通信方式
  分布式通信是指在分布式系统中,不同节点之间进行消息传递和交互的方式。   以下是常见的分布式通信方式: 消息队列(Message Queue):使用消息队列…
perl 通过 swig 调用 c++代码
  Swig 是一个软件开发工具,可以简化不同语言与 C/C++ 的交互(直接在其它语言的代码中调用 C/C++ 的代码)。   记录一下成功用 perl 调用…
线段切割不规则多边形
  在项目中有用线段切割多边形的需求。所以在网上找到了一篇比较好的实现。   原博客地址:多边形切割 求出多边形和线段的所有交点。把多边形本身的点,和遍历到的交…
LeetCode | 516.最长回文子序列
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s = "b…
LeetCode | 473.火柴拼正方形
你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍 拼成一个正方形。你 不能折断 任何一根火柴棒,但你可以把它们连在一起…
LeetCode | 416.分割等和子集
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数…
LeetCode | 218.天际线问题
  城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的天际线 。 每个建筑物的几何信息由数组 buildings …
c++ static 关键字
有五种用法 静态成员变量 不需要声明对象就可以访问 内存分配在全局数据区,只分配一次内存,所有的对象共享静态成员变量 静态成员变量必须初始化,初始化时分配内存 遵循 public、private、pr…
c++ const 关键字
作用 修饰变量,说明该变量不可改变 修饰指针,分为指向指针的常量 (pointer to const) 和 自身是常量的指针 (const pointer) 修饰引用,指向常量的引用 (referen…
LeetCode | 62.不同路径
一个机器人位于一个 m x n 网格的左上角(坐标 (0, 0))。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(坐标 (m - 1, n - 1))。 问总共有多少条不同的路径?…
LeetCode | 22.括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())&q…
c++ 静态绑定和动态绑定
  C++ 中有两种不同的函数调用方式:静态绑定和动态绑定。 静态绑定   静态绑定是指在编译时确定调用哪个函数。也就是说,编译器会根据函数调用的名称和参数类型…
c++ 静态编译和动态编译
  C++是一种高级编程语言,它支持两种不同的编译方式:静态编译和动态编译。 静态编译   静态编译是将程序代码和库函数一起编译成一个可执行文件的过程。在静态编…
Qt 多线程 QThread、QThreadPool使用场景
QThread 和 QRunnable 都是 Qt 框架中用于多线程编程的类,它们之间有以下不同点: 继承关系不同 QThread 继承自 QObject 类,而 QRunnable 没有父类。 实现…
设计模式之单例模式
单例模式(Singleton Pattern) 一种创建型设计模式,用于确保一个类只能创建一个实例,并提供一个全局访问该实例的方式。 定义一个单例类: 私有化它的构造函数,以防止外界创建单例类的对象;…
设计模式之工厂模式
简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于封装对象的创建逻辑。在简单工厂模式中,创建对象的逻辑被封装在一个工厂类中,而不是在客户端直接创建对象…