自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LINDA

做笔记 写感悟

  • 博客(44)
  • 资源 (7)
  • 收藏
  • 关注

原创 红黑树的简单实现

红黑树LINDA2018/9/25前言如果你还是对写红黑树毫无头绪,可以看一下我的思路,从普通二叉搜索树的插入操作是如何一步步“进化”为真正的红黑树的插入操作的。红黑树的四个规则:(1) 每个结点要么是红的,要么是黑的;(2) 根结点必须为黑的;(3) 若结点为红,它的子节点为黑;(4) 从根结点到 nil 结点之间的黑结点个数相同。由于规则 (4) ,新插入的结点必须...

2018-09-25 21:38:39 833

原创 从零开始学习JSON库(六)

从零开始学习JSON库(六)LINDA2018/9/23TODO补充了对 array、object 中各元素的取值操作和赋值操作,并完成相关测试。原因为什么突然想写它们呢?一是之前在做 leetcode 时,有时候无法通过测试用例,想在本地调试,又苦于它的测试用例是 json 数组,无法直接用 vector 来存储,有了对 json array 对象的各元素的取值操作,就可以很方...

2018-09-24 14:49:16 355

原创 拷贝初始化与直接初始化的区别

copy-initialization vs direct-initializationLINDA2018/8/31copy-initialization指用一个对象初始化另外一个对象:在下面这6种情况下发生:T object = other; //(1) 当一个非引用类型T的具名变量通过 '=' 被一个表达式初始化时 T object = {other}; //(...

2018-09-21 20:23:12 4210 3

原创 leetcode日常刷题

最大子序和 53 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。题目要求实现复杂度O(n)的解法,尝试使用更为精妙的分治法求解。复杂度O(n)的做法是,设两个变量cursum和res,前者存放当前和的最大者,即之前的累加值加上当前位置的值,和当前位置的值之间的较大值。res存放当前序列的最大序列和的值。...

2018-09-11 20:22:33 298

翻译 跳表(skip list)

跳表(skip list)LINDA2018/8/9跳表可以作为AVL、红黑树等平衡二叉树或伸展树等自适应树的替代品。对于跳表,任何数据集的查找、插入、删除操作都是O(lgn)。在普通的链表中,查找、插入、删除都是O(n),这是因为它是按顺序扫描的。如果可以增大扫描的步长(即跳过某些结点),我们就可以减少扫描的开销了。这就是跳表的基本思想。跳表相对于普通链表有两点不同:...

2018-08-09 18:27:16 785

原创 从0开始学习JSON库(五)

从零开始学习JSON库(五)LINDA2018/6/27TODO补充了object类型解析,和object文本生成,并完成相关测试。实现object类型使用STL的map类型存储,由于上次已经把class value改为如下存储结构:class value{ // json值 public: value(); ~value(); ...

2018-06-28 11:40:58 300

原创 从0开始学习JSON库(四)

从0开始学习JSON库(四)LINDA2018/6/12结构体设计问题隔了好久没有写了,主要是之前写JSON数组时,发现原来的数据结构不太适合。之前的结构体如下:struct value{ // json值 int type; union{ string s; // 存字符串 double n; // 存数字 }; ...

2018-06-12 21:10:49 206

原创 从0开始学习JSON库(三)

从零开始学习JSON库(三)LINDA2018/5/13JSON字符串在这一节里,加入对字符串的处理。JSON字符串有转义字符,如下:\" represents the quotation mark character (U+0022).\\ represents the reverse solidus character (U+005C).\/ represents t...

2018-05-14 18:20:49 250

原创 从0开始学习JSON库(二)

从零开始学习JSON库(二)LINDA2018/5/10代码重构practice01中的parse_true(), parse_null, parse_false()有重复代码,我们可以将它们合并为一个parse_literal(),减少代码量。class leptjson{...private: // json为json文本,literal为要判断的字面...

2018-05-12 16:15:26 311

原创 从0开始学习JSON库(一)

从零开始学习JSON库(一)LINDA2018/5/8前几天看了叶神的知乎专栏从零开始的JSON库教程,叶老师很详尽地跟我们讲解一个项目的正确打开方式: 1. 要做一个项目首先要知道做什么,即项目要实现的协议是怎么样的,可以先看相关的RFC文档。 2. 知道大概要做什么了,我们先从简单的入手,构思相应的数据结构,函数接口,罗列出来。 3. 先写对应接口的单元测试,当然,我们不...

2018-05-09 18:15:06 2268

原创 DES

一、DES加密过程 64位秘钥经子秘钥产生算法产生16个子秘钥:K1、K2……、K16, 分别供第一次到第16次加密迭代使用。 64位明文首先经过初始置换IP,将数据打乱重新排列并分成左右两半。左边32位构成L0,右边32位构成R0. 由加密函数f实现子秘钥K1对R0的加密,结果为32位的数据组f(R0, K1) 。f(R0, K1)再与L0模2相加(即异或),又得到一个32...

2018-05-04 11:39:17 861

转载 explicit构造函数禁止隐式转换

转自http://www.cnblogs.com/cutepig/archive/2009/01/14/1375917.html按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); // 用C风格的字符串p作为初始化值 //… } ...

2018-03-11 22:20:01 547

原创 qt msvc17 中文乱码

参考blog: http://blog.csdn.net/libaineu2004/article/details/19245205 http://blog.csdn.net/brave_heart_lxl/article/details/7186631 http://blog.csdn.net/imxiangzi/article/details/50781459写qt程序时,源码中

2018-01-16 10:52:27 643

原创 Qt程序无法运行

遇到一个小问题:一个程序在Qt中已经编译通过可以运行,但是直接用命令行单独运行就会出现以下错误:~/Qt/build-pdfviewer1-Desktop_Qt_5_8_0_GCC_64bit-Release$ ./pdfviewer1./pdfviewer1: error while loading shared libraries: libpoppler-qt5.so.1: cannot op

2017-12-31 17:05:13 4385

转载 C/C++改变终端输出字体的颜色(Linux)

(转)http://blog.sina.com.cn/s/blog_628ba3e00101jll1.html 简单的说就是ESC[m,ESC的八进制为\033,可以是多个属性的组合,用分号隔开。例:#includeint main(){ printf("\033[31mThis is RED.\n\033[0m"); return 0;}31m代表字体为红色,0m代表关闭所

2017-12-22 16:00:48 3727

转载 书籍推荐

https://linux.cn/article-5758-1.htmlhttp://javarevisited.blogspot.com/2014/09/top-6-books-to-learn-programming-coding.html作为一名程序员,日常的工作除了上班撸代码就是加班撸代码了。撸码其实不难,无非询问Google,StackOverflow,解决方法和demo一箩筐,可是撸的一

2017-12-22 14:57:44 196

原创 共享文件

文件共享内核通过打开三个数据结构来表示打开文件:描述符表(descriptor table) 每个进程都有一张描述符表,它的表项是由文件描述符来索引的,每个打开的文件描述符表项指向文件表的一个表项。文件表(file table) 打开的文件集合由一张文件表表示,所有进程共享这张表。每一个文件表项组成包括当前的文件位置,引用计数(reference count)(即当前指向该表项的文件

2017-12-15 21:55:31 485

原创 循环赛算法分析

这是一个算法作业,老师说要用分治思想解决,在网上找了都讲解的不是很明白,比赛对数为奇数时,有点费解。不过最后还是想明白了,顺便把作业放这,有兴趣了解的可以看一下,逃)问题:有N个运动员进行单循环赛,即每个运动员要和所有其他运动员进行一次比赛。 1.试用分治法为N个运动员安排比赛日程。 2.要求每个(或队)运动员每天只能进行一场比赛,且当运动员人数(队数)为偶数时,整个比赛在N-1天内结束,为奇数

2017-12-10 22:44:39 16099 13

原创 IEEE浮点数表示

IEEE浮点标准:V=(-1)^s*M*2^E1.符号(sign)s决定这个数是负数(s=1)还是正数,0(s=0)。 2.尾数(significand) M是一个二进制小数. 3.阶码(exponent)E对浮点数加权。 单精度,双精度的表示如下: exp为阶码,frac为尾数 给定了位表示,根据exp的值,被编码的值可以分为三种情况: 规格化的表示一般的数,非规格化的表示靠

2017-09-29 18:10:15 15922

转载 Python+Basics+With+Numpy+v3

笔记 转自coursera,deeplearning课程Python Basics with Numpy (optional assignment)Welcome to your first assignment. This exercise gives you a brief introduction to Python. Even if you’ve used Python before, th

2017-08-28 17:28:01 2703 1

翻译 类构造函数,类析构函数

类构造函数(The Class Constructor)是一个特殊的类成员函数,当我们创建这个类的新对象时,会被执行。一个构造函数将被确定与类名相同的名字,没有任何返回值,包括void。构造函数对于给某些类成员变量设置初始值非常有用。例子:#include <iostream>using namespace std;class Line { public: void setLeng

2017-08-12 23:57:08 196

转载 c语言内容对齐详解

C语言内存对齐详解 一、字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存 储空间的处理上有很大的不同。一些平台对某些特定类型的数据

2017-08-08 08:01:17 1718

原创 nginx数据结构

大佬链接:http://blog.csdn.net/livelylittlefish/article/details/6599065 http://blog.csdn.net/livelylittlefish/article/details/6586946ngx_list_t是nginx封装的链表容器typedef struct ngx_list_part_

2017-07-28 09:46:07 240

原创 编程珠玑课后习题

第一章 开篇3.位图排序:在排序中,我们可以很容易的想到用数组来排序,一个元素标志一个数,但是,这样做太浪费空间了,我们可以以一个二进制位(bit)标志一个数,这样形成的排序就是位图排序。 位图排序源码如下,#include <stdio.h>#include <stdlib.h>#define N 10000000#define M 1000000#define BITSPERWORD 3

2017-07-23 17:07:20 944

原创 nginx-default.conf

Serving Static Content静态内容服务server { listen 80; server_name www.tsing.cn; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/s

2017-07-21 13:47:48 762

原创 nginx

# vim /etc/yum.repos.d/nginx.repo输入以下内容:[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=1保存好,然后在终端输入:# yum install nginx, 安装确认提示输入y即可。 详见安装ng

2017-07-15 11:23:51 349

原创 VIM命令

管理多个文件文件与缓冲区: 文件存储在磁盘中,缓冲区位于内存中。vim打开一个文件时,将文件内容读取到具有相同名字的缓冲区中。当对缓冲区做修改时,文件中的内容与缓冲区的内容就不同了。如果决定保存当前内容,再把缓冲区内容写回文件中。vim缓冲区列表: vim可以同时在多个缓冲区上工作。在shell输入: $ cd yourcode/files //cd到你的源码文件夹 $ vim *.php/

2017-07-13 11:05:54 217

原创 SSH密钥登录远程主机

本地生成密钥使用云主机时,出于安全性考虑,设置密钥直接ssh登录,不需要输入密码 本地生成密钥(public key 和 private key)。其中,public key存放在欲登录的服务器上,而privatekey为特定的客户机所持有。 当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过p

2017-07-08 10:37:07 3698

原创 校园网DrcomClient Linux版客户端上网解决方法

在网上找了很多关于drcomLinux版客户端上不了网的解决办法,但是亲测无效。无奈之下,只能自己想办法解决了。正所谓“自己动手,丰衣足食。” 我下了学校的linux版drcom客户端,但是运行了总是提示“please install rp-pppoe rpm.”。上网找了rp-pppoe包,安装后仍然有上文提示,运行不了。于是,我下载了wireshark(不会的话,终端输入wireshark

2017-07-07 16:15:54 6963

原创 回射函数错误分析

回射函数str_cli.c 正常情况下, 1.客户程序发送文本行,服务器程序回射文本行。 2.客户程序提前终止,服务器程序响应终止(如 child 10128 terminated). 3.服务器程序提前终止,客户程序响应终止(str_cli:server terminated prematurely)但是, 1.我的客户程序发送文本行后,服务器程序并没有回射文本行。 2.客户程序提前终

2017-06-10 15:59:40 251

转载 accept error: Invalid argument

总结自己在运用accept函数时所出现的的“Invalid Argument”时的错误,主要有以下两种误用: 首先简单介绍一下accept函数头文件#include <sys/socket.h>定义:int accept(int sockfd, struct sockaddr* addr, socklen_t *addrlen)返回值:非负描述字-成功,-1出错出错情况1: 在参数1处出错,多

2017-05-18 19:27:30 2423

原创 理解fork函数

*改(补充的内容来自实战Linux编程精髓第9章)* fork函数原型: pid_t fork(void) fork函数较难理解的是:一次调用,两次返回。 其实,fork()不止调用一次,它是在父进程调用一次,在子进程也调用一次,通过两次调用的不同返回值来判断是位于父进程,还是位于子进程。 我根据它的执行原理,粗略画了如下的图: 在父进程中,调用fork函数时,操作系统将父进程缓冲区已

2017-05-16 21:32:40 1341

原创 宏定义笔记

宏定义有两种:简单宏定义,带参数的宏定义。 简单宏定义:#define 标识符 替换列表 #define为常量命名的优点: 1. 程序会更易读; 2. 程序更易于修改; 3. 可以帮助避免前后不一致或键盘输入错误; 其他应用: 1. 可以对C语法做小的修改:#define BEGIN { // 指令总在第一个换行符结束,除换行符之前加 \#define END }

2017-05-16 20:26:25 611

原创 inet_pton 和 inet_ntop 等函数

inet_pton 和inet_ntop对IPv4和IPv6都适用头文件中的声明如下: int inet_pton (int __af, const char *__restrict __cp, void *__restrict __buf)const char *inet_ntop (int __af, const void *__restrict __cp, char *__r

2017-05-06 23:18:13 1367

原创 网络字节序和主机字节序

字节序分大端字节序和小端字节序。 大端字节序(big-endian)与小端字节序(little-endian)的区别如图: 把给定系统使用的字节序称为主机字节序,网络协议使用的字节序称为网络字节序。网络字节序是大端字节序,而主机字节序由系统决定,因此,两者间需要转化后才能使用,有以下几个转换函数: 函数名中h->host; n->network; s->short; l->long;

2017-05-06 14:31:07 300

原创 套接字结构体

unix网络编程第三章书中的套接字结构体如下:IPv4套接字地址结构:以sockaddr_in命名在<netinet/in.h>头文件中, POSIX定义如下:struct in_addr { in_addr_t s_addr; // 32-bit IPv4 address};struct sockaddr_in { uint8_t sin_len; // l

2017-05-06 11:03:25 867

原创 第一章习题分析

启动daytimetcpcli 前先启动 daytimetcpsrv题1.3 单独改 daytimetcpcli 的端口号sin_port = 9999 结果 :lin:~/unix-network-programing/unpv13e/intro$ ./daytimetcpcli 127.0.0.1connect error: Connection refused原因: 服务器程序day

2017-04-29 14:36:31 326

原创 ubuntu配置unix网络编程源码

1 ./configure # try to figure out all implementation differences 2 cd lib # build the basic library that all programs need 3 make # use "gmake" everywhere on BSD/OS systems 4

2017-04-27 23:48:24 335

原创 unix网络编程源码编译出错分析

lin@lin-X555LI:~/Downloads/unix-network-programing/unpv13e/lib$ cd ../libfreelin@lin-X555LI:~/Downloads/unix-network-programing/unpv13e/libfree$ makegcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o in_

2017-04-27 23:06:41 2346

原创 qt编译出错 /usr/bin/ld 找不到 -lGL

第一次使用Qt,编译过程出现以下错误: /usr/bin/ld: 找不到 -lGL上网找到这篇博客:http://blog.csdn.net/u010159842/article/details/56833030 虽然他出错的编译器不同,不过原因一样:~$ locate libGL.so/usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386

2017-04-19 17:50:40 10433

深入理解计算机系统原书第3版第5部分

深入理解计算机系统原书第3版中文版第5部分,文件太大分5个部分上传,一起下载后,用cat book.tar.gz.a*|tar zxv解压

2017-12-12

深入理解计算机系统原书第3版第4部分

深入理解计算机系统原书第3版中文版第4部分,文件太大分5个部分上传,一起下载后,用cat book.tar.gz.a*|tar zxv解压

2017-12-12

深入理解计算机系统原书第3版第3部分

深入理解计算机系统原书第3版中文版第3部分,文件太大分5个部分上传,一起下载后,用cat book.tar.gz.a*|tar zxv解压

2017-12-12

深入理解计算机系统原书第3版第2部分

深入理解计算机系统原书第3版中文版第2部分,文件太大分5个部分上传,一起下载后,用cat book.tar.gz.a*|tar zxv解压

2017-12-12

深入理解计算机系统原书第3版第一部分

深入理解计算机系统原书第三版中文版pdf,这本书有500多M,无法一次上传,我分解为五部分上传,解压用cat book.tar.gz.a* |tar zxv

2017-12-12

Unix环境高级编程

这是英文版书籍,书里对Linux内核的解析非常详尽,可以结合深入理解计算机系统一起学习,深入理解计算机系统里有shell lab,这个实验是让你理解Linux信号和进程是如何协作工作的,信号这方面的知识在这本书中有详细介绍,对你写shell实验很有帮助。我已经对文件进行了多次压缩,所以很小,包括了PDF和书上代码

2017-12-12

空空如也

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

TA关注的人

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