欢迎来到 Franklin-Qi 的世界

Max
Min

08 2020 档案

C++ Standard Template Library
摘要:借助《c++ 17入门经典 第五版》和 Geeksforgeeks网站进行总结归纳c++。 一、容器与算法 双向队列简单遍历方式 deque<int> my_deque; // some mutators for (int element : my_deque) cout << element << 阅读全文

posted @ 2020-08-31 20:31 yusq77 阅读(178) 评论(0) 推荐(0)

vim实现python函数跳转
摘要:C/C++ 可以通过 ctags 或者 ExuberantCtags 来实现函数跳转,那么Python 怎么办呢? 一、下载ptags.py文件 下载路径: http://svn.python.org/projects/python/trunk/Tools/scripts/ptags.py 下载的p 阅读全文

posted @ 2020-08-31 14:13 yusq77 阅读(1315) 评论(0) 推荐(1)

python pass
摘要:在system-config-services源码包中常看到pass,而且常在 那么pass到底是什么? 一、实例 def on_systemd_manager_discovery_started(self, manager): pass def run(self): try: self.mainW 阅读全文

posted @ 2020-08-27 19:53 yusq77 阅读(150) 评论(0) 推荐(0)

vim缩写
摘要:vim缩写可以简化输入,如在Python调试中的logging.warning可以缩写为lgw,在使用时会提高效率。 一、设置缩写 在~/.vimrc增加: :abbreviate lgw logging.warning 这样在想要输入logging.warning的时候输入lgw,之后: Ctrl 阅读全文

posted @ 2020-08-27 17:10 yusq77 阅读(471) 评论(0) 推荐(0)

Linux服务配置页面卡顿问题解决方案
摘要:Linux桌面应用页面一般由C调用GTK、Python调用GTK、C的qt进行绘制。 其中,c的qt界面有专门IDE(qtcreator)能进行跟踪,相对容易,维护性也好。 Python和C调用GTK相关文档较少,维护相对复杂。所以这种情况的问题,最好还是 先从宏观角度,即问题现象进行分析,实在不行 阅读全文

posted @ 2020-08-26 15:32 yusq77 阅读(615) 评论(0) 推荐(0)

十大排序之快速排序
摘要:快速排序是不稳定的吗? 其实不然,根据稳定性的定义,只要相同值元素位置在排序前后位置不变则是稳定的。 只要将查找条件变为从右向左找第一个小于x的数进行挖坑填数则是稳定性的。 一、快速排序实例 //快速排序 void quick_sort(int s[], int l, int r) { if (l 阅读全文

posted @ 2020-08-26 10:45 yusq77 阅读(124) 评论(0) 推荐(0)

python logging
摘要:logging 模块可以进行快速定位,默认为WARNING级别,也就是不设置日志级别情况下, WARNING, ERROR, CRITICAL可以打印,而DEBUG, INFO则不可以打印。 一、Python logging 实例 import logging logging.basicConfig 阅读全文

posted @ 2020-08-26 10:03 yusq77 阅读(88) 评论(0) 推荐(0)

把字符串转换成整数
摘要:linux 中库函数有个atoi(),但当atoi(0x0)会直接崩溃,咱们也可以实现类型的功能。 一、题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。 二、详细代码 long long StrToIntCore(const char 阅读全文

posted @ 2020-08-22 18:03 yusq77 阅读(191) 评论(0) 推荐(0)

丑数
摘要:一、题目 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。 求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。 二、问题分析 假设这个数为 n, 如果n是丑数,只有三种可能: n是能整除2,即 n % 2 == 0 阅读全文

posted @ 2020-08-22 17:58 yusq77 阅读(166) 评论(0) 推荐(0)

字符流中第一个只出现一次的字符
摘要:一、题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。 例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是'g'。 当从该字符流中读出前六个字符"google"时,第一个只出现一次的字符是'l'。 二、问题分析 字符只能一个接着一个从字符流中读出来。用字符的ASCII码 阅读全文

posted @ 2020-08-22 17:48 yusq77 阅读(192) 评论(0) 推荐(0)

字符串中第一个只出现一次的字符
摘要:一、题目 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。 二、问题分析 需要一个数据容器(哈希表)存放每个字符出现的次数,把一个个字符映射成一个数字。哈希表的键值(Key)是字符,值(Value)是该字符出现的次数。 通过2次字符串扫描,第1次进行制作哈希表,第2 阅读全文

posted @ 2020-08-22 17:46 yusq77 阅读(292) 评论(0) 推荐(0)

二进制数中1的个数
摘要:一、题目 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 二、解决方案 1. 避免死循环的位操作 时间复杂度为O(log2n)。 用位操作优于除法,考虑负数,比如n = 0x800000000,循环右移n可能会 阅读全文

posted @ 2020-08-22 17:40 yusq77 阅读(115) 评论(0) 推荐(0)

终端下的高效命令行操作
摘要:终端terminal下的高效命令行能让你快速摆脱鼠标。 一、Bang(!)命令 Bang(!)命令,可以减少键盘输入,大大提高程序员的工作效率。 $ !! // 上一条命令 $ !* // 使用上一条命令的所有参数: $ !$ // 使用上一条命令的最后一个参数 $ !:- // 使用上一条命令中除 阅读全文

posted @ 2020-08-22 17:26 yusq77 阅读(176) 评论(0) 推荐(0)

再也不怕分配内存了
摘要:最近改用户组管理项目bug时,遇到一个关于内存分配的问题。原来是同事用一个长度为4096的字符数组分配内存, strncpy()函数造成拷贝错误,导致用户组管理编辑、添加和删除功能不可用。 虽然是个小问题,但是内存分配一直都是很重要的,严重时会导致系统崩溃。 一、内存分配方式 静态存储区域中分配(系 阅读全文

posted @ 2020-08-22 16:59 yusq77 阅读(73) 评论(0) 推荐(0)

相识Hyperscan
摘要:Hyperscan是一款来自于Intel的高性能的正则表达式匹配库。 参考 Hyperscan简介 阅读全文

posted @ 2020-08-22 16:35 yusq77 阅读(122) 评论(0) 推荐(0)

彻底卸载源码包
摘要:一、正常的编译安装/卸载 源码的安装一般由3个步骤组成: 配置(configure) 编译(make) 安装(make install)。 configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。 其中--pr 阅读全文

posted @ 2020-08-22 16:14 yusq77 阅读(1466) 评论(0) 推荐(0)

巧用你的gdb
摘要:一、调试段错误 当运行程序发生段错误时,使用GDB调试能快速定位错误位置 Linux提供的core dump机制:当程序中出现内存操作错误时,会发生崩溃并产生核心文件(core文件)。 (1)无论你是用Makefile来编译,还是直接在命令行手工输入命令来编译,都应该加上 -g 选项。 (2)一般来 阅读全文

posted @ 2020-08-22 15:01 yusq77 阅读(152) 评论(0) 推荐(0)

BOOL和bool是不一样的
摘要:BOOL和bool是不一样的,他们没有半点关系。 一、BOOL类型 BOOL类型在windef.h头文件中被定义,其实际类型为int: typedef int BOOL BOOL类型在<wtypes.h>头文件中被定义,其实际类型为long: typedef long BOOL BOOL是一个三值逻 阅读全文

posted @ 2020-08-12 18:20 yusq77 阅读(336) 评论(0) 推荐(0)

如何写Makefile?
摘要:如何写Makefile ? c++ makefile 实例 CXX=g++ CXXFLAGS=-Wall -g RM=rm -f LDFLAGS= #使用“wildcard”函数获取工作目录下的.cpp文件列表 SRCS=$(wildcard *.cpp) #patsubst :替换函数,将符合规则 阅读全文

posted @ 2020-08-11 15:59 yusq77 阅读(128) 评论(0) 推荐(0)

C语言变量的存储类别详解
摘要:从变量值存在的作用时间(即生存周期)角度来分,可以分为静态存储方式和动态存储方式。 静态存储方式:是指在程序运行期间分配固定的存储空间的方式。 动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。 从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量。 用户存储空间可以分为 阅读全文

posted @ 2020-08-11 11:05 yusq77 阅读(890) 评论(0) 推荐(0)

数据结构之循环双链表
摘要:LoopDLink.cpp 源码 1. 头文件包含 #include <stdio.h> #include<malloc.h> #include<stdlib.h> #include<time.h> typedef int ElemType; // 元素类型 typedef int Status; 阅读全文

posted @ 2020-08-10 19:56 yusq77 阅读(366) 评论(0) 推荐(0)

创造属于你的rpm软件包
摘要:RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志, 但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。 yum是基 阅读全文

posted @ 2020-08-10 16:26 yusq77 阅读(201) 评论(0) 推荐(0)

Linux的字符设备和块设备
摘要:Linux的字符设备和块设备的区别是什么? 一、块设备 块设备是系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备,这些数据片就称作块。 最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。 注意,它们都是以安装文件系统的方式使用的——这也 阅读全文

posted @ 2020-08-10 15:57 yusq77 阅读(879) 评论(0) 推荐(0)

#!/usr/bin/python 的解释
摘要:关于脚本第一行的 #!/usr/bin/python 的解释,脚本语言的第一行,只对 Unix/Linux 用户适用,用来指定本脚本用什么解释器来执行。 有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器。 #!/usr/bin/python 是告诉操作系 阅读全文

posted @ 2020-08-10 15:39 yusq77 阅读(1015) 评论(0) 推荐(0)

导航