自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

uestcjerry

积累 思考

  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

转载 大数加法 大数乘法

#include<iostream>#include<stdio.h>#include<string.h>#define MAXLEN 300//大数的长度using namespace std;int Input(char n[])//将大数读入的函数{ char s[MAXLEN]; int i, l; for (i = 0; i < MAXLEN; i++)

2016-05-15 21:46:26 891

原创 windows下类似linux readdir()读取文件

仿写头文件 dirent.h模拟linux下头文件 myDirent.h#ifndef MYDIRENT_H#define MYDIRENT_Htypedef struct _dirdesc { int dd_fd; /** file descriptor associated with directory */ long dd_loc; /** o

2016-05-04 11:02:29 2440 1

原创 计算年月日函数

一:判断是否为闰年bool isUnNormalYear(const long long year){ if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) return true; else return false;}二:判断某年某月某日为星期几int CaculateWeek

2016-04-05 14:19:09 3948

原创 求无向图顶点之间的所有最短路径

无向图顶点之间所有最短路径

2016-03-09 11:55:27 10539

转载 大端与小端

简单测试大端机器与小端机器用例:#include <iostream>bool isBigEnd(){ int a = 0x1234; char b = *(char *)&a; if (b == 0x12) return true; else return false;}bool isBigEnding(){ uni

2016-03-07 16:00:59 492

原创 new二维数组

第一种//first stack savechar A[MAX][MAX];第二种//second heap savechar *A = new char[N * M];(A + i * M + j) 表示 A[i][j]第三种//third heap savechar **A;A = new char *[N];for (int i = 0; i < N; ++i) A[i] =

2016-03-02 23:39:27 407

原创 高效生成素数

#include <iostream>#include <cmath>#include <ctgmath>#define MAX 100000000int main(){ bool *tagArray = new bool[MAX+1]; for (int i = 1; i <= MAX; ++i) { if (i % 2 == 1) t

2016-03-01 16:01:39 3879

原创 c++11随机数产生器default_random_engine

原因: c/c++老版本的rand()存在一定的问题,在转换rand随机数的范围,类型或者分布时,常常会引入非随机性。定义在<random> 中的随机数库通过一组协作类来解决这类问题:随机数引擎 和 随机数分布类 一个给定的随机数发生器一直会生成相同的随机数序列。一个函数如果定义了局部的随机数发生器,应该将(引擎和分布对象)定义为 static 的。否则每次调用函数都会生成相同的序列。随机数发生器

2016-02-25 10:55:37 21690

原创 利用gettimeofday简单测试程序用时

centos$ man 2 gettimeofday#include <sys/time.h>int gettimeofday(struct timeval *tv, struct timezone *tz);struct timeval { time_t tv_sec; // seconds suseconds_t tv_usec; //microseconds};

2016-02-24 15:41:16 971

原创 运算符重载之 []

函数 operator[] 可以用于为类的对象定义下标运算的意义。operator[] 的第二个参数(下标)可以具有任何类型,这就使得我们可以去定义vector ,关联数组(仿写map)。eg: 用运算符重载的方式来进行词频统计,我们仿写一个关联数组:class Assoc {public: Assoc() {} const double& operator[](const st

2016-02-19 22:41:31 399

原创 istream_iterator ostream_iterator 迭代器和IO

头文件:#include <iterator>istream_iteratorostream_iterator成员函数:如同使用其他iterator一样来使用member function:operator*operator++operator=示范:istream_iterator#include <iterator>#include <iostream>int main(){

2016-01-28 14:32:49 462

转载 c++运算符重载

一:一般运算符的重载class A {public: A() { a = 0; b = 0; } A(const int left, const int right) : a(left), b(right) {} ~A() {} //成员函数重载 + - * / A operator+(A &elem) { return A(this->a + elem.a,

2016-01-14 12:03:55 337

原创

一、描述堆其实就是一个数组,它被看做是一个近似完全二叉树,树上的每个元素的每个节点对应数组中的一个元素。除了最底层没有填充完,该树是完全的,而且是从左向右填充。表示堆的数组包括两个属性: A.length 通常表示数组元素的个数 A.heap_size 通常表示有多少个堆元素存储在数组中也就是说 A[1 … A.length] 可能都存有数据,但是只有 A[1 … A.heap_size] 存放

2015-12-16 21:27:10 463

原创 最短路径

问题一:只有五行的算法 floyd-warshallA准备去旅游,有些城市之间有公路,有些则没有,为了节省经费以及计划旅途,A希望知道任意两个城市之间的最短路程input:4 81 2 21 3 61 4 42 3 33 1 73 4 14 1 54 3 12第一行N M,代表节点数和边数 后面跟着 M 行代表边以及权值上图中有4个城市8条公路,数字代表公路的长短。 我们需要求任

2015-12-13 16:29:30 1789

原创 BFS

总体描述BFS 是最简单的图搜索算法之一。 Prim最小生成树算法和Dijkstra的单源最短路径算法都使用了类似BFS的思想。给定图G=(V, E)和一个可以识别的源节点s, BFS能够计算出从源点s到每个可以到达的节点的距离(最少的边数),同时生成一颗“BFS生成树“。BFS的搜索过程是沿着其广度方向扩展的,算法需要在发现了所有距离源点s为k的所有节点之后,才会发现距离源节点s为k+1的其他节

2015-12-08 21:27:17 734

原创 dfs

问题一:问题描述: 输入一个数n,输出1~n的全部排列。分析我们可以将这个问题换一个思路来描述,假设有123编号的扑克牌和123编号的箱子,需要将扑克放到箱子里去,一共有多少种放的方法呢?第一个箱子有3种,第二个剩下2种,最后一个1种,如此得到一种排列;那么,取出最后一个盒子的牌,退到倒数第二个箱子,此时我们有2种选择,去掉刚才已经选择过的,如此又得到了第二种排列;再退到倒数第三个箱子。。。这个

2015-12-08 16:14:36 448

原创 快速排序

概要理解快速排序的思想理解分治以及排序过程的设计巧妙之处深入理解时间复杂度分析,最好与最坏情况下的时间复杂度分析,生成树分析法,代入法,主方法。伪代码//返回的是分割点,即主元//循环维护的部分为四个部分// p...i...j.....r// p..i 维护 <= r 的元素// i+1 ... j 维护 > r 的元素// j+1 ... r-1 的元素暂时没有处理,一次过程只

2015-11-18 20:43:55 309

原创 Effective c++笔记:03 尽可能使用const

在const和non-const成员函数中避免重复对于‘bitwise-constness‘的问题,mutable是一个解决方法,但是不能解决所有。试想,假设TextBlock类的内部operator[]不仅仅返回一个reference指向某个字符,也执行边界检验,志记访问信息,甚至可能进行数据完整性检验。把所有这些功能同时放入const和non-const operator[]之中,将会导致长度颇

2015-09-21 22:05:30 481

原创 我辈楷模

无事看了下ibus-pinyin的about BYVoid 这个id 然后搜了下。。。。看图吧,不说了,都是10级,差距,呵呵。踏实过好每一天,努力努力努力! 懈怠了就来看看。

2015-09-20 16:26:08 783

原创 c++深拷贝与浅拷贝

类的聚集:类的成员中含有某个类的指针,就叫做类的聚集。对象中只存放数据的地址,数据可以是数组或者对象等。浅拷贝:对象之间的元素一一复制,这就是拷贝构造函数的本能。当数据成员是指针时,就会出现问题!深拷贝:被复制的对象数据成员是指针类型时,不会复制指针成员本身,而是将指针所指向的对象进行复制!浅拷贝demo#include <iostream>using namespace std;class B

2015-09-14 21:07:59 414

原创 邻接表

.h 文件#include <stdio.h>#include <stdlib.h>#define handler_error(msg) \ do { perror(msg); return EXIT_FAILURE; } while (1)struct arcnode{ size_t data; struct arcnode *next;};struct vexnod

2015-09-09 15:06:57 300

原创 libevent学习笔记一:总体把握

分析libevent如何使用 (官方手册,心得体会)源码分析 (event, event_base 为核心)引言标准c库便有许多参用了回调函数,让用户制定处理过程,比如常用的 qsort(3), bsearch(3)基本的socket编程时阻塞/同步的,线程在默认情况下占2~8M栈空间。posix的select(2)采用了轮循的方法来判断某个fd是否激活?故时间需要O(n),效率并不高

2015-07-28 17:37:26 568

原创 linux命令行解压缩小工具

bash的小技巧通过修改 /etc/bashrc 添加bash语句从而方便我们解压缩各种压缩文件,不用再记忆各种压缩指令了。在 /etc/bashrc 中添加:mytar () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1

2015-07-28 15:17:03 508

原创 同步调用,回调,异步调用

同步调用同步调用:阻塞式调用。举个栗子: A B C D 四个烽火台,需要传递消息。顺序是A->B->C->D。消息需要逐个传递,因此时间主要消耗在了等待上。回调回调:双向调用的方式。举个栗子: 依旧是A B C D四个烽火台,顺序依然是A B C D,假设烽火台多了一位士兵,在A接收到信息而还没有点燃烽火的时候,可以先将士兵派出,这个士兵即是“回调函数“。 此时,先执行回调函数,再执行后面的

2015-07-24 21:59:46 1318

原创 使用automake autoconf生成Makefile dh-make发布deb

使用automake,autoconf生成Makefile,dh-make发布deb包

2015-06-30 15:34:50 887

原创 分治策略

分治策略步骤:分解解决合并递归情况和基本情况:求解递归式时,可以使用三种方法,a 代入法 b 递归树法 c 主方法最大子数组A[low..high]的任何连续子数组A[i..j]所处的位置必然是以下几个情况之一:完全位于子数组A[low..mid] low<=i<=j<=mid完全位于子数组A[mid..high] midFIND_MAX_CROSSING_SUBARRAY(A, l

2015-03-13 11:31:25 402

原创 线程:避免死锁

线程互斥量pthread_mutex_t 类型初始化一:静态分配,可以设置为常量 PTHREAD_MUTEX_INITIALIZER二:调用 pthread_mutex_init(3)若是动态分配,则需要在释放时调用 pthread_mutex_destroy(3)加锁 / 解锁 pthread_mutex_lock(3)      阻塞至互斥变量解锁

2015-02-03 00:01:36 516

原创 静 忍

静下心来不管将面对什么像个真男人一样战斗坚强执着冷静乐观想起以前和两亮亮打dota,2345号位都能耍的飞起的我,打1号位总是被喷咬咬牙,冷静分析局势,好好补刀,一点点发育起来double killtripple killunstoppablemega killmonster kil

2015-02-02 22:31:36 574

原创 信号知识之abort(3) system(3) sleep(3) POSIX.1实现

abort(3) 使程序异常终止,将SIGABRT信号发送给调用进程(进程不应忽略)ISO C规定,调用它将向主机环境递送一个未成功终止的通知,即调用 raise(SIGABRT)而 raise(3) 等价于:单线程: kill(getpid(), signo);多线程; pthread_kill(pthread_self(), signo);#includ

2015-01-19 21:48:01 1005

原创 volatile和sig_atomic_t

volatile影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,每次使用时都需要去内存里重新读取它的值,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如:volatile int i=10;int j =

2015-01-18 11:50:34 660

原创 进程调度和进程时间

进程调度: 由内核决定:调度策略,调度优先级nice值决定优先级,nice越低优先级越高nice的范围在 [ 0 , 2* NZERO - 1 ]NZERO是系统默认的nice值只有特权进程允许提高调度权限关于NZERO:定义NZERO的头文件因系统而异,除了头文件,Linux3.2 可以通过非标准的sysconf参数 _SC_NZERO 来访问NZERO的值

2015-01-11 15:14:30 764

原创 fork进程控制

完整了解UNIX进程控制是十分重要的。对我们而言,必须熟练掌握的几个函数:fork,exec系列,_exit,wait和waitpidwaitpid可以等待一个特定进程的结束wait相当于: waitpid( -1, &status, 0 );关于fork:如果子进程在父进程之前终止,父进程可以通过wait或者waitpid获得子进程的状态,内核为每个终

2014-12-30 15:12:54 665

原创 杂谈

学习coding如同婴儿学步一样,模仿,尝试,迈步,跌倒,再来。一上来就学习系统的基础知识,效率并不快,很多人倒在了漫长的道路上。其实我们完全可以升华的时候再这么做!don‘t   overwhlem  trying learn too much试着学太多,及时地学习,最好有项目驱动使用一门技术开始工作:1:如何起步2:这门技术能做什么

2014-12-22 23:04:27 427

原创 标准IO

标准IO都是围绕流进行流的定向决定了单字节还是多字节,最初创建的流没有定向。freopen(3) 清除一个流的定向, fwide(3) 设置流的定向标准IO提供的目的:减少使用read和write的次数,对每个IO流进行自动缓冲管理标准IO提供三种缓冲方式:一:全缓冲所谓冲洗 flush :对标准IO缓冲区的写操作1:在标准IO库方面,f

2014-12-22 22:08:43 470

原创 readdir仿写ls(1)

man 3 readdirman 3 opendir#include #include #include int main(int argc, char *argv[]){ DIR *dp; struct dirent *dirp; if (argc != 2) { fprintf(stdout, "%s", strerr

2014-12-22 21:59:27 449

原创 双向循环链表

使用哨兵(头节点)实现双向循环链表,所谓哨兵(头结点):哑对象,简化边界条件处理。假设在链表L中设置一个对象L.nil ,该对象 代表NIL,但也具有和其他对象相同的各个属性。对于链表代码中出现的每一处对NIL的引用,都替换成L.nil 。这样的调整将一个常规的双向链表变成一个有哨兵的双向循环链表。哨兵位于表头和表尾之间。L.nil.next 指向表头, L.n

2014-12-22 13:10:14 456

原创 队列

循环队列#include #include #define QUEUE_TYPE inttypedef struct QUEUE{ QUEUE_TYPE *head; //pointer start int front; //head int rear; //tail int size;

2014-12-19 00:00:20 385

转载 计算机科学经典著作

以下著作均可在此地址下载:    http://www.verycd.com/topics/24717/中文名: 计算机科学经典著作英文名: Computer Science1.The Art of Computer Programming  Author: Donald.E.Knuth  Web site: http://www-cs-facu

2014-12-18 23:15:52 597

原创 顺序栈 链栈

开始积累并且熟练常用的数据结构和算法,实践实践再实践!!!!!!以前的不足之处在于动手太少,来到一个新的环境,新的挑战,科研要搞,论文要读,代码也一定要坚持写,坚持学习,不断提高自己,少抱怨,多脚踏实地思考实践。虽然自己很菜,虽然项目坑爹,虽然读论文有时候很枯燥很无聊甚至以后根本用不上这些毕竟产业界还是要靠真本事吃饭而不是忽悠两下就能混下去的。没关系,至少我还有

2014-12-18 21:56:57 329

原创 qsort快速排序

非常使用的快速排序算法,不稳定排序#include#include/* * qsort invoke this function */int compare_integers( void const *a, void const *b ){ register int const *pa = a; register int const *pb = b;

2014-12-17 11:22:56 322

visual assist x

vs2013实用插件,代码补全,代码高亮

2016-03-15

VMware完全卸载(程序加指导)

VMware完全卸载指导,内有完整说明文档和卸载程序VMware_Install_Cleaner.exe 完全卸载虚拟机

2014-08-21

xml xsd dtd转换工具,实现xml转换为xsd和dtd文件

最近在写c#项目,c#自带的xsd.exe重定向io后容易导致线程阻塞,共享一个jar包,可以提供xml dtd rnc rng到xsd dtd rnc rng的转化,便于开发

2014-08-05

空空如也

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

TA关注的人

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