算法
zx249388847
这个作者很懒,什么都没留下…
展开
-
strcpy 实现原理
已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现 1.strcpy的实现代码char * strcpy(char *dst,const char *src) //[1]{原创 2016-06-24 12:25:02 · 3150 阅读 · 1 评论 -
C++ 应用程序性能优化,第 6 章:内存池
author link引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言的对象模型,该篇是优化 C++ 程序的基础;第 2 篇主要针对如何优化 C++ 程序的内存使用;第 3 篇介绍如何优化程序的启动性能;第 4 篇介绍了三类性能优化工具,即内存分析工具、性能分析工具和 I/O 检测工具,它们是测量程序性能的...转载 2018-05-16 09:48:29 · 173 阅读 · 0 评论 -
基于C++11的线程池(threadpool),简洁且可以带任意多的参数
咳咳。C++11 加入了线程库,从此告别了标准库不支持并发的历史。然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。线程池(thread pool)这个东西,在面试上多次被问到,一般的回答都是:“管理一个任务队列,一个线程队列,然后每次取一个任务分配给一个线程去做,循环往复。” 貌似没有问题吧。但是写起程序来的时候就出问题了。废话不多说,先上实现...转载 2018-05-11 14:45:59 · 408 阅读 · 0 评论 -
OPENCV2 图像修复 — 去除文字(上)
http://blog.csdn.net/learn_sunzhuli/article/details/47791273图像修复,指对受到损坏的图像进行修复重建或者去除图像中的多余物体。 去除文字,是图像修复的一种应用。提出一个问题: 给定一张自然图像,该图像上已经写了一些文字(模拟图像遭到了破坏),则如何去掉文字,使得图像恢复原来的面目?针对上述问题,本文提供两种思路: 方法一:先用阈值法提取图...转载 2018-02-14 14:50:46 · 3114 阅读 · 0 评论 -
批量去水印
批量去水印是个邪恶的技术,以老赵的衣橱为例子就更邪恶了。之所以以衣橱为例子而不以时尚网为例子,是标题需要。实际上,时尚网的水印批量去除效果更佳。闲话少说,摆原理,上图片(代码就不上了)。======================================通过观察可以发现,如果以图片的右下角为基准,很多网站图片的水印位置是固定的,因此,可以通过以下步骤去除:第一步:制定一张mask图片,这张...转载 2018-02-14 14:49:20 · 5639 阅读 · 3 评论 -
PBOC/EMV中TLV的构造和解析
BER-TLV 数据对象编码根据 ISO/IEC 8825 的定义,一个 BER-TLV 数据对象包括 2-3 个连续数据域:l 标签域( Tag)包括一个或多个连续字节。它定义一种类别、类型和一个数字。本规范规定的数据对象的标签域用一个或二个字节编码。l 长度域( Length)包括一个或多个连续字节。它定义了接下来一个域的长度。本规范规定的数据对象的长度用一个、或二转载 2017-10-19 16:16:35 · 718 阅读 · 0 评论 -
(Unicode) UTF-8与UTF-16之间转换
一、Unicode的由来 1、我们知道计算机其实只认识0101这样的字符串,当然了让我们看这样的01串会比较头晕,所以为了描述简单一般都用八进制、十进制、十六进制表示。实际上都是等价的。其它像文字图片音视频等计算机也是不认识的,为了让计算机能表示这些信息就必须转换成一些数字,必须按照一些规则转换。比如:刚开始的时候就有ASCII字符集(American Standard Code fo转载 2016-12-06 17:52:38 · 10422 阅读 · 2 评论 -
循环队列
我们假设一个队列有n个元素,则顺序存储的队列需建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的一端即是队头。所谓的入队列操作,其实就是在队尾追加一个元素,不需要移动任何元素,因此时间复杂度为0(1)。与栈不同的是,队列元素的出列是在队头,即下标为0的位置,那也就意味着,队列中的所有元素都得向前移动,以保证队列的队头(也就是下标为0的位置)不为空,此时的时间复杂转载 2016-06-14 15:28:14 · 10414 阅读 · 1 评论 -
大数相加 面试题
最近在准备面试,所以做了一些公司的面试题,看到一个大数相加的题目,感觉挺有意思,就实现一下:不说废话,直接看代码:#include #define N 20using namespace std;void AddBig(char a[],char b[],char c[]);void main(){char a[N] = "90999原创 2016-06-14 01:22:57 · 478 阅读 · 0 评论 -
双向链表实现约瑟夫环 2016/6/12
今天实现了一个简单的双向链表,用来完成约瑟夫环:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后[1] 结果+1即为原问题的解。其实原创 2016-06-12 17:20:47 · 1845 阅读 · 0 评论 -
冒泡排序 查找排序
废话不多说 直接上代码:冒泡排序:void BubbleSort(int *pArray, int size){for (int i = 1; i {int m = i;for (int j = 0; j {if (pArray[j]>pArray[j+1]){int temp = pArray[j];pArray[j] = pArray[j + 1原创 2016-06-12 12:31:51 · 772 阅读 · 0 评论 -
Base64
#ifndef BASE64_H#define BASE64_H#include<iostream>#include <string.h>using namespace std;class Base64{public: Base64(); ~Base64();public: char * Base64Encoding(const...原创 2018-12-07 13:50:31 · 209 阅读 · 0 评论