刷新
【Guava】BiMap&Multimap&Multiset

博主头像 BiMap Map 可以实现 key -> value 的映射,如果想要 value -> key 的映射,就需要定义两个 Map,并且同步更新,很不优雅。Guava 提供了 BiMap 支持支持双向的映射关系,常用实现有HashMap, EnumBiMap, EnumHashBiMap...。 而 ...

tesseract引擎RVV代码学习笔记

博主头像 Tesseract 是一个开源的 OCR(Optical Character Recognition,光学字符识别)引擎,可将图像中的文本转换为机器可读的文本格式。由于组内曾经有同事为这个项目贡献了RVV(RISC-V Vector)的代码,我打算单独拎出来学习一下。 PR链接在此:Add RISC ...

rust学习二十.8、RUST特质的限定,实为对类型的限定

有的时候,可能希望使用的特质已经实现了其它特质(看后面可以知道,实际是要求相关类型实现了其它特质)。 RUST支持为特质(trait)指定限定的特质。 例如我们定义特质A,之后定义了类型T,这个时候还希望T已经实现了特质TC。 在rust中就是这个语法: trait tx:t1 trait tx:t ...

Go红队开发— 收官工具开发

博主头像 目录免责声明个人武器开发美观输出Whois查询反查ip目录扫描子域名爆破被动扫描主动扫描(字典爆破)CDN检测 免责声明 本博客绝不涉及任何非法用途。 使用者风险自担,违规后果自负。 守法为先,技术向善。 请合理、合法地使用网络安全技术,共同维护一个健康、安全的网络环境! 个 ...

golang的条件编译

博主头像 写c/c++或者rust的开发者应该对条件编译不陌生,条件编译顾名思义就是在编译时让代码中的一部分生效或者失效,从而控制编译时的代码执行路径,进而影响编译出来的程序的行为。 这有啥用呢?通常在编写跨平台代码的时候有用。比如我想开发一个文件操作库,这个库有全平台统一的接口,然而各大操作系统提供的文件和 ...

搭建开源笔记平台:outline

博主头像 折腾的意义 为什么要自己搭建一个笔记平台?没理由,就是突然想试试。有时候突然有个想法,搜了一下正好有合适的方案,就顺手试一下。 其实已经有很多成熟的笔记软件,例如Notion/OneNote,但谁不想要一个数据完全在自己服务器的笔记呢。 开始搭建 这个搭建是真的麻烦,需要一堆东西: redis po ...

1. 初始 RabbitMQ 消息队列

博主头像 1. 初始 RabbitMQ 消息队列 @目录1. 初始 RabbitMQ 消息队列1. MQ 的相关概念2. MQ 的分类3. MQ 的选择4. RabbitMQ4.1 RabbitMQ 的概念4.2 RabbitMQ 的四大核心概念4.3 RabbitMQ 六大核心部分4.4 RabbitMQ ...

【Guava】集合工具类-Immutable&Lists&Maps&Sets

博主头像 Immutable 如《Effective Java》Item1)所述,在设计类的时候,倾向优先使用静态工厂方法(static factory method)而非构造函数(constructor)创建对象,优点在于: 静态工厂方法多了一层名称信息,比构造函数更富表达性。 可以更灵活地创建对象,比如缓 ...

mysql InnoDB的事务

博主头像 一、事务的概念 一组数据库操作要么全部成功,要么全部失败,目的是为了保证数据的最终一致性 二、事务的四大特性(ACID) 原子性(Actomicity):当前事务的操作要么成功,要么失败,原子性是由undo log日志来保证 一致性(Consistency):使用事务的最终目的,由业务代码正确逻辑保 ...

运算符重载

博主头像 运算符重载:对已有的运算符重新定义,赋予其另一种功能,以适应不同的数据类型 加号运算符重载 作用:实现两个自定义类型的相加运算 #include<iostream> using namespace std; class Person { private: int m_A; int m_B; publ ...

<1···424344···50>