Br 算法
基于google的brotli开源,实现Br算法。
#include <brotli/encode.h>
#include <brotli/decode.h>namespace br {/*compress unsigned char* content,if ok return non empty unsigned char * */std::string compress_string(const std::string& content){size_t encoded_size = BrotliEncoderMaxCompressedSize(content.size());std::string compressed_data(encoded_size,0);BROTLI_BOOL result = BrotliEncoderCompress(BROTLI_DEFAULT_QUALITY, BROTLI_DECODER_PARAM_LARGE_WINDOW, BrotliEncoderMode::BROTLI_DEFAULT_MODE, content.size(),(uint8_t *)&content[0],&encoded_size,(uint8_t *)&compressed_data[0]);if (result != BROTLI_TRUE) {return "";}compressed_data.resize(encoded_size);return compressed_data;}/*decompress unsigned char* content,if ok return non empty unsigned char**/std::string decompress_string(const std::string& compressed_data){BrotliDecoderState* pstate = BrotliDecoderCreateInstance(nullptr, nullptr, nullptr);if (pstate == nullptr) return "";size_t available_in = compressed_data.size(), total_out = 0;const uint8_t *next_in = (const uint8_t*)&compressed_data[0];std::string uncompress_buf(4096, 0), uncompress_data;BrotliDecoderResult result;do {uint8_t* next_out = (uint8_t*)&uncompress_buf[0];size_t available_out = uncompress_buf.size();size_t temp_total_out = total_out;result = BrotliDecoderDecompressStream(pstate, &available_in, &next_in, &available_out, &next_out, &total_out);if(result != BROTLI_DECODER_RESULT_ERROR)uncompress_data.insert(uncompress_data.end(), uncompress_buf.begin(), uncompress_buf.begin() + (total_out - temp_total_out));} while (result == BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT);BrotliDecoderDestroyInstance(pstate);pstate = nullptr;if(result == BROTLI_DECODER_RESULT_SUCCESS)return uncompress_data;return "";}
}
使用brotli git加密数据验证算法:
int main()
{std::cout << "Hello World!\n";std::string str_src = "empty";std::string u8en = br::compress_string(str_src);std::fstream f("F:\\project\\brotli-master\\tests\\testdata\\ukkonooa.compressed",std::fstream::in|std::fstream::binary);std::string stru8;std::getline(f, stru8);std::string u8_src = br::decompress_string(stru8);}
相关文章:
Br 算法
基于google的brotli开源,实现Br算法。 #include <brotli/encode.h> #include <brotli/decode.h>namespace br {/*compress unsigned char* content,if ok return non empty unsigned char * */std::string compress_string(const std::string& c…...
GPT实战系列-一种构建LangChain自定义Tool工具的简单方法
GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 LLM大模型: GPT实战系列-探究GPT等大模型的文本生成 GPT实战系列-Baichuan2等大模型的计算精度与量化 GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF …...
【Docker】Memcached 容器化部署
Memcached环境标准软件基于Bitnami Memcached 构建。当前版本为1.6.24 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platf…...
Langchain-Chatchat本地搭建ChatGLM3模型和提取PDF内容
文章目录 1、软件要求2、安装CUDA2.1、安装gcc2.2、安装CUDA 3、安装Anaconda33.1、下载Anaconda33.2、创建python虚拟环境 4、部署系统4.1、下载源码4.2、安装依赖4.3、下载模型4.4、初始化配置和知识库4.4.1、初始化配置4.4.2、初始化知识库 4.5、运行4.6、运行4.6.1、启动4.…...
案例分析篇03:一篇文章搞定软考设计模式考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)
专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…...
套接字的地址结构,IP地址转换函数,网络编程的接口
目录 一、套接字的地址结构 1.1 通用socket地址结构 1.2 专用socket地址结构 1.2.1 tcp协议族 1.2.3 IP协议族 二、IP地址转换函数 三、网络编程接口 3.1 socket() 3.2 bind() 3.3 listen() 3.4 accept() 3.5 connect() 3.6 close() 3.7 recv()、send() 3.8 recv…...
Java回顾总结--RandomAccessFile和NIO
目录 一、RandomAccessFile1.1 为什么要有RandomAccessFile?1.2 常用方法简介1.3 RandomAccessFile 特点和优势1.3.1 既可以读也可以写1.3.2 可以指定位置读写 1.4 示例 二、NIONIO使用示例 一、RandomAccessFile 1.1 为什么要有RandomAccessFile? Ran…...
2024年3月第15届蓝桥杯青少组STEMA考试C++中高级真题试卷
第15届蓝桥杯青少组STEMA考试C中高级真题试卷(2024年3月) 题目总数:11 总分数:400 选择题 第 1 题 单选题 (110010)2(c3)16的结果是( )。 A. (240)10 B. (11110101)2 C. (366)8 D. (f6)16 第 2 题 单选题 …...
Hyperf AOP 和 注解
注解 (hyperf.wiki) AOP 面向切面编程 (hyperf.wiki) 切面 定义切面(Aspect) 根据官方教程定义一个切面。可以指定类、方法、参数和注解上生效。 <?php namespace App\Aspect;use App\Service\SomeClass; use App\Annotation\SomeAnnotation; use Hyperf\Di\Annotatio…...
【C++】string类(介绍、常用接口)
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 string类的常用接口说明 string类对象的常见构造 编辑 string字符串的遍历(迭代器…...
SpringBoot项目中同时支持https和http协议
实用干货!看壹哥如何在SpringBoot项目中同时支持https和http协议_springboot http htpps共存-CSDN博客...
三大排序:冒泡、选择、插入
冒泡排序: 冒泡排序(Bubble Sort)是一种简单的排序算法。它通过比较相邻元素的大小,并交换它们的位置,使较大(或较小)的元素逐渐“浮”到数组的一端,从而实现排序的目的。 下面是冒…...
Android中MultiDex优化
MultiDex基本思路 当一个Dex文件太肥的时候(方法数目太多、文件太大),在打包或在安装或运行apk也会出问题。 解决方法就是将这个硕大的Dex文件拆分成若干个小的Dex文件。 刚好一个ClassLoader可以有多个DexFile。 MultiDex主要性能瓶颈 解压缩和Dex优化(…...
MySQL 8.0 的执行计划(EXPLAIN)
MySQL 8.0 的执行计划(也称为“EXPLAIN”计划)是数据库优化器为 SQL 查询生成的步骤序列。解读执行计划可以帮助数据库管理员(DBA)和开发者理解查询如何执行,识别潜在的性能问题,并据此优化查询。 下面是如…...
leetcode——二叉树问题汇总
leetcode 144. 二叉树的前序遍历 ①递归法: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val,…...
Android基础开发-饿汉式申请权限
1、案例,打开app时,就要申请权限 直接在onCreateView中申请所有权限就可,然后在选择的回调里边判断申请的结果 package com.example.client;import android.Manifest; import android.content.Intent; import android.content.pm.PackageMa…...
java Day7 正则表达式|异常
文章目录 1、正则表达式1.1 常用1.2 字符串匹配,提取,分割 2、异常2.1 运行时异常2.2 编译时异常2.3 自定义异常2.3.1 自定义编译时异常2.3.2 自定义运行时异常 1、正则表达式 就是由一些特定的字符组成,完成一个特定的规则 可以用来校验数据…...
Python算法题集_搜索二维矩阵
Python算法题集_搜索二维矩阵 题74:搜索二维矩阵1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【矩阵展开为列表二分法】2) 改进版一【行*列区间二分法】3) 改进版二【第三方模块】 4. 最优算法5. 相关资源 本文为Python算法题集之…...
学习笔记:顺序表和链表(一、顺序表)
首先来个导言: 1.数组的优势:下标的随机访问,物理空间连续。数组指针用[ ]或者 * , 结构体指针用 - > 2.书写习惯 test.c写出主体框架 QelList.c写出结构体、头文件、函数声明 QelList.c写出函数的实现 3.挪动:如果从前…...
Midjourney从入门到实战:图像生成命令及参数详解
目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 0 专栏介绍 🔥Midjourney是目前主流的…...
OpenClaw+Qwen2.5-VL-7B:低成本自动化内容生成方案
OpenClawQwen2.5-VL-7B:低成本自动化内容生成方案 1. 为什么选择这个组合 去年我开始尝试用AI辅助内容创作时,遇到了两个核心痛点:一是商业API调用成本太高,二是现有工具无法实现端到端的自动化。经过多次尝试,最终找…...
Python数据分析项目实战(049)——DataFrame数据类型转换
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 数据类型转换概述 数据类型转换是数据预处理中规范数据格式、适配分析需求的核心操作,指将DataFrame中字段的原始数据类型(如字符串、整数、浮点数等)转换为目标类型的过程,其本质是解决“数…...
Glide:Android图片加载的瑞士军刀,真的有这么神?
Glide:Android图片加载的瑞士军刀,真的有这么神? Glide 是什么,为何选择它 在 Android 开发的世界里,图片加载是一个绕不开的重要环节。想象一下,在一个社交类 APP 中,用户的头像、发布的照片&a…...
500行代码还原儿时经典 Python Pygame 制作带 AI 决策的飞行棋
1. 前言 飞行棋(Aeroplane Chess)是许多人童年的回忆。今天,我们将使用 Python 的 Pygame 库,从零开始构建一个完整的飞行棋游戏。 这不仅仅是一个简单的绘图程序,它包含了完整的游戏逻辑状态机、一维路径坐标映射&am…...
效率倍增:OpenClaw+Phi-3-vision-128k-instruct自动化处理每日重复工作
效率倍增:OpenClawPhi-3-vision-128k-instruct自动化处理每日重复工作 1. 为什么我们需要自动化日常办公 每天早上打开电脑,总有一堆重复性工作等着我:整理邮件、生成报表、写会议纪要。这些工作消耗了我至少2小时的高效时间。直到我尝试用…...
大模型压力测试与负载测试的完整指南:从理论到实践干货分享
总的来说,大模型压力测试与负载测试是确保其在高并发、大数据量场景下稳定可靠运行的关键环节。核心结论是:压力测试旨在探索系统极限,发现性能瓶颈;负载测试则用于验证系统在预期工作负载下的表现。两者结合,才能为模…...
大数据知识图谱之深度学习:基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统
文章目录大数据知识图谱之深度学习:基于BERTLSTMCRF深度学习识别模型医疗知识图谱问答可视化系统一、项目概述二、系统实现基本流程三、项目工具所用的版本号四、所需要软件的安装和使用五、开发技术简介Django技术介绍Neo4j数据库Bootstrap4框架Echarts简介Navicat…...
如何贡献代码给Cryptofeed:开源项目参与和代码审查流程详解
如何贡献代码给Cryptofeed:开源项目参与和代码审查流程详解 【免费下载链接】cryptofeed Cryptocurrency Exchange Websocket Data Feed Handler 项目地址: https://gitcode.com/gh_mirrors/cr/cryptofeed Cryptofeed是一个功能强大的加密货币交易所WebSocke…...
欧姆龙CP1H+CIF11与施耐德ATV变频器通讯程序 功能:原创程序,可直接用于现场程序
欧姆龙CP1HCIF11与施耐德ATV变频器通讯程序 功能:原创程序,可直接用于现场程序。 欧姆龙CP1H的CIF11通讯板,实现对施耐德ATV12变频器 设定频率,读取实际频率,变频器状态功能。 反应灵敏,通讯稳定可靠。 非常…...
算法优化中的多线程数据一致性问题的技术9
多线程数据一致性问题概述多线程环境下,数据一致性是算法优化中常见的技术挑战。多个线程同时访问和修改共享数据可能导致竞态条件、脏读或不可重复读等问题。确保数据一致性对算法正确性和性能至关重要。常见数据一致性问题类型竞态条件(Race Condition…...
