随笔分类 - 数据结构与算法
摘要:go语言实现并发遍历目录 目录树结构定义 先实现一个目录树的数据结构定义,需要支持共享访问。 package main import ( "os" "strings" "sync" ) type ( // 目录项 DirEntry struct { Name string `json:"name"`
阅读全文
摘要:之前在网上找过一个火星坐标的转换算法实现 https://github.com/googollee/eviltransform ,但是其在部分区域的精度较低,达不到我们使用的要求。因为其没有进行有效的迭代计算,所以误差比较大。 参考 从地球到火星 ~ 论 GCJ-02 及其衍生 这篇文章,我借鉴文章
阅读全文
摘要:经常遇到一个事情,就是获取一个图片中所有像素值的最大和最小 2% 的值,所以封装了一个 LimitArray 的类,用于把一个序列中最大(或最小)的 N 个值给提取出来。 代码如下: #include <iostream> #include <vector> #include <array> #in
阅读全文
摘要:groupcache 里面实现了一个 singleflight 包,感觉很有用,于是参考它实现了一个C++版本。 参考资料: golang防缓存击穿利器--singleflight golang singleflight 用武之地 groupcache源码分析(四)-- singleflight 实
阅读全文
摘要:[TOC] 原始仓库地址: "https://github.com/mapbox/vector tile spec" 翻译原文地址: "https://github.com/jingsam/vector tile spec/blob/master/2.1/README_zh.md" 本文档中的“ 必
阅读全文
摘要:[TOC] 参考资料: "MinFilter Wolfram 语言与系统参考资料中心" "ImageFilter Wolfram 语言与系统参考资料中心" "Streaming Maximum Minimum Filter Using No More than Three Comparisons p
阅读全文
摘要:1、算法叙述 算法参考自:【RGBA alpha 透明度混合算法】 ,下面的叙述和实现中有一些个人修改在里面。 1.1、透明度混合算法1 **R1、G1、B1、Alpha1 **为前景颜色值,R2、G2、B2、Alpha2 为背景颜色值,则: Alpha = 1 - (1 - Alpha1) * (
阅读全文
摘要:缘起 GDAL的栅格化算法中有GDALRasterizeLayers、GDALRasterizeLayersBuf和GDALRasterizeGeometries函数,但是没有GDALRasterizeGeometriesBuf函数(GDAL项目不打算添加这个函数,因为增加一个函数会增加维护成本)。
阅读全文
摘要:[TOC] 需求简述 对于一张栅格影像图,需要一个进行快速且正确的投影转换算法,以便能够快速的实时多源数据叠加显示。 因为只是用于显示,所以无需进行整体的重投影,只需要对显示区域范围进行重投影即可。 "什么是地图投影?" 逐点采样投影换算 正常的影像进行投影变换,原理是对影像的每一个像素点都进行投影
阅读全文
摘要:[TOC] 简述 有一个需求是这样的,写的一个程序内置了一个很大的文件(实际就是 "抓取epsg.io的内容" 里面的epsg.io.json),这个文件筛选缩减后还有 12MB ,如果直接内置到程序中,编译后的程序就很大了。 因为这个程序是一个动态库,而使用 压缩过的动态库有时候会有一些异常问题出
阅读全文
摘要:[TOC] Gumbo简介 Gumbo是谷歌开源的一个纯C编写的HTML解析库,性能很好,就是用起来比较麻烦。 "github地址https://github.com/google/gumbo parser" 还有一个C++封装的版本 "https://github.com/lazytiger/gu
阅读全文
摘要:今天翻到一个早期写测试代码的目录,找到几个以前的测试代码,于是拿出来贴到博客中。(只是简单的测试,并不严谨。注意这里windows和linux的硬件环境不一样) 这一个是使用fstream进行文件拷贝的代码,测试机器的环境大概如下(时间久了,机器有更新) 当时仅在 上做了测试,今天顺便在window
阅读全文
摘要:简述 与 "XML文件生成C++代码(基于pugixml)" 中的功能一致,只是这里改用的rapidxml来实现。就不多说了,直接放代码。 代码
阅读全文
摘要:简述 在一个项目中需要用到XML的解析和生成,知乎上有人推荐 和`pugixml RapidXML pugixml`了。 因为对解析XML的需求不大(都是一些很小的XML文本),但是对生成XML有较大的需求,且这些XML文本都很大,所以先写了一个根据XML文件生成对应的C++代码的项目。 对XML的
阅读全文
摘要:今天使用 模板函数的时候出现了一个错误,特此记录一下。 那么原因就很简单了,因为我在使用的时候,第三个参数写的是0(默认为int),改为 就可以了。
阅读全文
摘要:简述 有一个需求,是需要将URL中的 参数的key全部转换为小写或者大写,键值对的数量有点多,但全部都是英文字母,无需考虑非字母的情况。 实现比较快的做法是使用STL或C标准库中的转换接口,如下: 这个方法虽然很好,但是效率不是很高。 分析了一下ascii码的码值,发现大小写字母的ascii码之间是
阅读全文
摘要:简单的OID生成测试实现,只是简单的用用,切勿用于生产环境。 c / 应该使用大端序的,这里没有做转换 ObjectId是12 byte BSON类型,其结构为: 4 byte 值为Unix时间戳, 3 byte 主机标识, 2 byte 进程ID 3 byte 计数值 / include incl
阅读全文
摘要:源码下载地址如下: "http://web.mit.edu/freebsd/csup/fnmatch.h" "http://web.mit.edu/freebsd/csup/fnmatch.c" 代码整体不错,但是中有一些地方稍有不足。我没有去改(添加了一些 ,以便结构清晰)。 c / Copyri
阅读全文
摘要:简介 1、这段代码只考虑在小端序情况下的转换(一般的机器都是的)。 2、这段代码需要C++11的支持(只是用到了 ),如果不支持,可以添加下面代码 utfconvert.h utfconvert.cpp cpp include "utfconvert.h" include ifdef __GNUC_
阅读全文
摘要:TJpgDec—轻量级JPEG解码器 本文由乌合之众lym瞎编,欢迎转载blog.cnblogs.net/oloroso 下文中解码一词皆由 翻译而来。 TJpgDec是一个为小型嵌入式系统高度优化的创建JPEG图像的解码模块。它工作时占用的内存非常低,以便它可以集成到微控芯片,如AVR, 8051
阅读全文