自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (4)
  • 收藏
  • 关注

原创 记ubuntu下安装搜狗输入法后无法使用的问题

出问题的版本号是sogoupinyin_4.2.1.145_amd64.deb,ubuntu的版本号是5.15.0-101-generic,按照各个地方大同小异的博客和官方指导安装了fcitx和搜狗输入法,配置也成功了,输入法配置里也能看到搜狗输入法个人版,重启后仍然无法唤起搜狗输入法,打字只有英文,没有中文,因此怀疑搜狗的服务没有正常启动,但是查看服务里有搜狗,这就奇了怪了。

2024-04-04 12:29:24 238

原创 C语言实现的通用二分查找算法

在读了redis和sqlite的源码之后,不知不觉就被其中任意操作某个字节的思想感染了,同时为了效率,平时写的代码也喜欢用C语言,C语言经常重复的写二分查找,对于不同的元素得重复的写,于是打算像C++ STL那样写一个泛型的二分查找,以后再需要二分查找的时候就不用重复实现,重复调试了,在此做记录。

2024-02-01 11:40:51 145 1

原创 C++函数声明前后的限定符号的作用

其中函数前面的const和引用符号限定了返回值的属性,函数后面的const和引用符号限定了调用函数的实例的特性,有点绕,以at函数为例,且看以下代码。函数声明的后限定符限制了返回值的种类,因此调用str.at(0) = ‘s’;只有在testString2的调用中才可以生效。在标准模板库的string实现中,索引某个位置的字符实现的很花里胡哨,如下图所示。

2024-01-25 17:17:15 344

原创 linux监控文件并快速查找的实现(五)

linux监控文件并快速查找的实现(五):AE事件循环epoll实现。

2023-12-23 12:32:17 314

原创 linux监控文件并快速查找的实现(四)

linux监控文件并快速查找的实现(四):AE事件循环select实现。

2023-12-23 12:31:14 351

原创 linux监控文件并快速查找的实现(三)

linux监控文件并快速查找的实现(三):AE事件循环主体。

2023-12-23 12:30:09 334

原创 linux监控文件并快速查找的实现(二)

linux监控文件并快速查找的实现(二):基础数据结构和算法定义。

2023-12-23 12:28:19 304

原创 linux监控文件并快速查找的实现(一)

问题背景:在做安卓系统开发的时候,会编译生成很多个相同的文件,时常不知道此次编译更新的是哪一个文件,因此导致修改并未推到设备上生效,导致白白花些时间定位日志,最后才发现是文件没有更新所致,在查找文件时也需要很长时间,因此想写一个监控所有文件的服务,希望给文件建立索引以达到快速查找的目的,在文件发生修改时更新文件的最后修改时间,在文件发生删除时祛除存储的索引,由于客户机平时需要做开发,而且文件的总数目达200万,因此降内存消耗,降CPU占用,并且还要保证速度,难度就上来了。

2023-12-23 12:26:42 321

原创 redis源码设计思想(二)柔性数组与前缀管理单元

以上是redis sdshdr8 的简化版本,其中的buf就是字符的柔性数组,sizeof(sdshdr8)得到的结果不包含buf,由于buf在结构体的末尾,因此结构体申请的额外的内存即为buf的大小,len为当前已经使用的大小,alloc表示申请的buf的总大小,8位的flags表示type,buf存储字符,那么初始化是申请的大小应该为sizeof(sdshdr8)+buf_len+1,额外一个字节存储’\0’。

2023-12-21 11:05:41 377

原创 redis源码设计思想(一)用C++设计,用C语言实现

在进行对象设计时,我们往往倾向于将对象的操作写作成员函数,操作的类容是对象的某些特性,这样便于阅读和理解,如定义人这个类,肚子里食物的质量和位置是人的特性,那么成员函数eat和walk就是改变这两个特性的成员函数。根据对象模型,成员函数与类绑定,与对象无关,编译后对象的成员变量作为传参传给成员函数,不使用多态的成员函数效率与非成员函数效率一致,编译时会对函数进行重命名,使用多态由于虚函数表指针的存在会占用额外的空间和额外的时间初始化。redis选择了折中的方案,即放弃多态的面向对象+C语言。

2023-12-21 10:10:28 337

原创 【无标题】

【代码】【无标题】

2023-12-11 22:31:57 14

原创 C++ NRV 析构函数也可以控制?

根据深度探索C++对象模型中的说法,如果类未定义拷贝构造且编译器也不合成拷贝构造,编译器不会对这个类施加NRV优化,即函数中声明的局部变量类实例,在return到类外部的时候,会进行一次拷贝,如果有拷贝构造,不管是合成的还是用户主动定义的,这个时候都不会拷贝,因此我写了如下测试代码,注:测试版本为g++ 13.2.0。的,与学习的理论冲突了,检查类的实现发现没有成员变量,没有继承,没有虚函数,也没有虚继承,不应该合成复制构造函数,将构造和析构都去掉试试,此时的类testmove为。试试,结果还是一样,

2023-11-10 16:26:53 31

原创 Android C++源码 TypeHelpers特性萃取

key_value_pair_t是键值对的容器,可以存放模板化的key和value,其对最初提到的trait_trivial_ctor,trait_trivial_dtor,trait_trivial_dtor,trait_trivial_move进行了特化,特化中调用了aggregate_traits,即key的类型和value的类型判断某个特性的结果均为true时,key_value_pair_t的这个特性才为true,否则为false。以char为例,如果直接调用。

2023-10-31 15:21:14 33

原创 C++序列解包打印STL容器

C++序列解包打印STL容器 /*IsOverloadOsOperator为判断数据类型是否定义了输出流函数,void_t在C++14中才存在*/ /*type_tt::IsOverloadOsOperator<std::string>::value adjust if define <<*/ template <typename...Ts> using void_t=void; template <typename T,typename

2021-03-18 22:41:40 120

原创 C++使用boost的混合类型储存器

#include<iostream>#include<vector>#include<string>#include<boost/any.hpp>int main() { std::vector<boost::any> some_values; some_values.push_back(10); const char* c_str = "hello there"; some_values.push_back(c_str); s

2020-10-10 15:13:02 176

原创 命令行提示并接受数据

#include<iostream>#include<boost/program_options.hpp>namespace opt = boost::program_options;int main(int argc, char **argv){ opt::options_description desc("All options"); desc.add_options() ("apples,a", opt::value<int>(), "how ma

2020-10-10 14:41:47 115 1

转载 C++查找

http://blog.csdn.net/guotianqing/article/details/105832070

2020-09-09 11:46:46 110

原创 gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf

联合编译C++版本gdal编译过程文档gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf各依赖库源代码版本及下载地址gdalProj.4geosHDF4HDF5netCDF编译环境及工具版本编译安装1、 编译geos2、 编译proj.43、 修改gdal的编译配置文件make.opt4、 编译gdal编译及运行过程中可能出现的问题及对应的解决方法测试gdal是否正确联合编译其他三方库的命令测试hdf测试proj.4测试netCDFgdal联合编译C++版本proj.4、g

2020-09-08 11:13:02 1372

原创 Qt加载图片数目超过八张就加载失败

Qt加载图片数目超过八张就加载失败#采用QImage加载,代码如下QStringList imgPaths=QFileDialog::getOpenFileNames(this,tr("请选择图片"),".",tr("图片文件(*.jpg *png)"));#pragma omp parallel forfor (int i=0;i<imgPaths.count();i++) { QImage *img=new QImage; if(img->load(imgPaths[

2020-08-05 16:04:12 268

opencv-4.4.0-vc14_vc15.exe

可以直接运行安装的OpenCV安装包,官方下载链接https://opencv.org/releases/,由于墙的缘故下载会很慢,本人已经在win 64的vs 2019上配置成功,骗个关注免费下,嘿嘿

2020-09-19

已经编译好的gdal,hdf4,hdf5,netCDF,geos,proj.4单独库

已经编译好的gdal,hdf4,hdf5,netCDF,geos,proj.4单独库,在路径不出错的前提下,可以直接使用vs 2015 x64本地工具运行gdal文件下的makefile.vc文件进行安装,具体的流程可参见本人的博客

2020-09-08

可以联合编译GDAL、HDF4、HDF5、Geos、netCDF、Proj.4的源文件

可以联合编译GDAL、HDF4、HDF5、Geos、netCDF、Proj.4的源文件,在vs2015 x64本地工具下编译成功,具体的编译流程可参见本人的博客,有详细的图文说明

2020-09-08

联合编译好的GDAL.rar

联合编译好的GDAL、HDF4、HDF5、Geos、netCDF、Proj.4,可直接使用,编译的源文件和中间文件可在本人博客下的其他下载资源下找到

2020-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除