- 博客(64)
- 资源 (23)
- 收藏
- 关注
转载 CentOS 7 安装过程
原文转自百度经验: 点我进入原文CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise
2016-03-31 17:08:02 621
原创 Centos 7 安装过程中的一些坑
1. 前言由于昨天配置 PHP + nginx 的时候, 需要用到 php-fpm 的东西, 而这个软件虽然说已经集成到了 PHP 7 中去了, 可是我们一开始编译 PHP 的时候, 并没有添加这个选项, 等到添加了这个选项 再 configure 的时候, 就编译不了, 在网上找了好多资料无果之后, 决定更换系统, 换成 Centos。2. 制作U盘启动项由于我们之前在 虚拟机中安装过 cento
2016-03-31 17:04:39 3148
原创 LeetCode 130. Surrounded Regions
1. 题目描述 Given a 2D board containing ‘X’ and ‘O’, capture all regions surrounded by ‘X’. A region is captured by flipping all ‘O’s into ‘X’s in that surrounded region. For example, X X X
2016-03-30 12:21:57 456
原创 Linux 内核源代码情景分析 chap 2 存储管理 (三)
1. 越界访问1.1 页面异常页式存储机制通过页面目录和页面表将每个线性地址(或者虚拟地址), 转化成物理地址。 然而, 如果在这个过程中遇到某种阻碍的话, 就会产生一次页面异常, 也称缺页异常。 主要有下面 3 中障碍: 1. 相应的页面目录项或者页面表项为空, ie, 线性地址到物理地址的映射关系并未建立或者已经被撤销。 2. 相应的物理页面不在内存中, 有页面描述项 vma 结构 3.
2016-03-29 19:16:12 1249
原创 LeetCode 124. Binary Tree Maximum Path Sum
1. 题目描述 Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connec
2016-03-29 11:13:29 1429
原创 LeetCode 125. Valid Palindrome
1. 题目描述 Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, “A man, a plan, a canal: Panama” is a palindrome. “race a
2016-03-29 09:05:45 546
原创 利用中介者模式模拟两个对象对话 C++
1. 中介者模式用一个中介对象来封装一系列的对象的交互, 中介者使得各个对象不需要显示调用, 从而降低他们之间的耦合, 并且可以独立的改变他们之间的交互。一般而言, 通过将一个系统划分为多个对象, 通常可以增加他的复用性, 但是对象之间相互连接的激增, 又会降低他的复用性。 我们可以这么理解, 由于大量的连接使得一个对象需要依赖其他对象才能工作, 系统表现成为一个不可分割的整体, 这时候, 再想对
2016-03-28 23:12:53 655
原创 Linux 内核源代码情景分析 chap2 存储管理(二)
几个重要的数据结构和函数1. 物理地址管理1.1 pgd_t, pmd_t, pte_t页面目录PGD, 中间目录PMD 和 页面表PT 分别是由 pgd_t, pmd_t, pte_t 构成的数组, 下面给出他们的定义:==================== include/asm-i386/page.h 36 50 ====================36 /*37 * Thes
2016-03-28 20:39:15 1038
原创 LeetCode 127. Word Ladder
1. 题目描述 Given two words (beginWord and endWord), and a dictionary’s word list, find the length of shortest transformation sequence from beginWord to endWord, such that: Only one letter can be ch
2016-03-28 16:07:06 531
原创 ubuntu 15.04 配置 apache 2.4.18 以及 PHP7.0.4
昨天配置好了mysql, 今天顺道配置一下apache 和 php, 这次的确是采用了源码编译安装了。 主要参考了这篇文章中的方法, 不过还是有些差别的, 就一并记录在这里1. 配置apache1.1 下载相应的apache 版本我们选用的是apache http server 2.4.18 版本csdn 的图片又抽风了。。。。1.2 解压配置我们是采用在windows 上先使用迅雷下载完毕之后,
2016-03-27 23:39:23 2512
原创 利用责任链模式模拟加薪请求 C++
1. 责任链模式他使得多个对象都有机会处理请求, 从而避免请求的发送者和接收者之间的耦合关系。他通过将这些对象连成一条链,并沿着这条链来传递请求, 直到有一个对象处理他为止。但是这个模式要求我们处于后方的对象需要能够处理更多的职责, 需要确保请求传递到了链表末端一定可以被处理。而在每个对象中, 需要确定是自行处理, 还是转移责任。 一般来说链表的越后方, 处理的职责也越大2. UML图3. 运行示
2016-03-27 20:01:31 497
原创 利用命令模式模拟烤肉店点餐 C++
1. 命令模式将一个请求封装为一个对象,从而可用不同的请求对对象参数进行参数化, 对请求队列或记录请求日志, 以及支持可撤销操作等。 命令模式的优点: 1. 可以容易的设计一个命令队列 2. 在需要的情况下, 可以比较容易的将命令记入日志 3. 允许接收请求的一方决定是否接受命令 4. 可以很容易的实现对请求的撤销和重做 5. 可以很容易的添加新的命令类敏捷开发中告诉我们, 不要伪代码添
2016-03-27 17:43:13 1101
原创 利用桥接模式实现手机品牌和手机软件之间的解耦 C++
1. 合成/聚合复用原则在面向对象编程过程中, 继承是一个非常强大的工具, 它体现出子类和父类之间的强耦合关系。对象的继承关系在编译的时候, 就已经决定好了, 无法在运行时候做改变。以至于父类的更改会影响到子类。聚合: 表示一种较弱的 拥有关系,A 对象可以包含 B 对象, 而B 对象不是 A 的一部分 合成: 表示一种较强的 拥有关系, 体现的是严格的部分和整体的关系, 并且部分和整体的声明周期
2016-03-27 15:06:57 794
原创 Linux 内核源代码情景分析 chap 2 存储管理(一)
2.1 Linux 内存管理的基本框架1. i386 CPU 中的内存管理的基本思路通过页面目录和页面表分为两个层次, 实现从线性地址到物理地址的映射。 这种模式在大多数的情况下面可以节省页面表所占用的空间, 因为很多时候, 我们的进程是用不到整个虚存空间的。但是Linux 内核设计需要考虑在不同CPU上面的实现, 既要兼容 i386 又要兼容 64 bit的 CPU。因此, Linux 内核的映射
2016-03-26 23:28:14 928
转载 Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息
点我进入原文Ubuntu11.04默认的是UFW(ufw 即uncomplicated firewall的简称,不复杂的防火墙,繁琐部分的设置还是需要去到iptables)防火墙,已经支持界面操作了。在命令行运行ufw命令就可以看到提示的一系列可进行的操作最简单的一个操作:sudo ufw status(如果你是root,则去掉sudo,ufw
2016-03-26 22:38:00 1770
原创 ubuntu 15.04 配置mysql 5.7.11 linux generic
最近突然想回顾一下数据库的相关内容, 于是开始倒腾了, 一路磕磕绊绊终于在我的ubuntu 15.04 上面把 mysql 5.7.11 给配置成功了。 这里记录一下配置的过程遇到的一些坑。1. 下载相应的mysql版本的文件首先, 我们本来是打算使用源码来编译安装的, 可惜我们在这个页面选择了 linux generic 于是导致我们解压完毕之后, 死活提示没有cmakelist, +_+!
2016-03-26 17:00:16 1678
转载 va_start和va_end使用详解
点我进入原文va_start和va_end使用详解 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当
2016-03-25 20:17:54 351
转载 C++11 中的线程、锁和条件变量
点我进入原文C++11 中的线程、锁和条件变量线程类std::thread代表一个可执行线程,使用时必须包含头文件。std::thread可以和普通函数,匿名函数和仿函数(一个实现了operator()函数的类)一同使用。另外,它允许向线程函数传递任意数量的参数。12345678
2016-03-25 20:13:06 882
原创 Linux 内核源代码情景分析 chap 1 预备知识
最近一段时间面试了一些公司后发现, 自己对操作系统的一些概念还是理解的不够深刻, 之前看的是《操作系统概念 第六版》, 这次觉得应该加点难度, 正好就开始看这本《Linux 内核源代码情景分析》好了。1.1 Linux内核简介1. 微内核和宏内核的区别内核中提供各种服务的成分和使用这些服务的进程之间形成了一种典型的Client/Server 关系, 由于有些服务提供者并不是一定非得留在内核中, 他们
2016-03-25 17:24:24 531
原创 python 查找相应图片数据路径并调用exe程序
今天在处理实验室采集的图像数据的时候, 需要调用师兄的一个程序, 而师兄是将这个程序所需要处理的图片文件夹的路径写死在了exe文件里面, 导致每次计算一个文件夹中的图像数据的时候, 都需要重新编译一次, 非常费劲。 比较懒的我,于是想到, 是不是可以使用python, 将我所需要处理的图像文件夹提取出来, 然后把他们作为参数, 传递给师兄的程序呢? 于是我将师兄的exe程序重新编译了一下, 使他
2016-03-25 13:29:08 1259
原创 LeetCode 128. Longest Consecutive Sequence
题目描述: Given an unsorted array of integers, find the length of the longest consecutive elements sequence. For example, Given [100, 4, 200, 1, 3, 2], The longest consecutive elements sequenc
2016-03-24 23:28:31 1005
原创 使用C++模拟实现 C# 中的反射功能
最近在看设计模式的相关内容, 看到抽象工厂模式这章节的时候, 书上介绍说, 抽象工厂模式在替换具体工厂类型的时候比较方便, 但是在涉及添加一个新的产品类的时候, 需要修改现有的工厂来支持这个新的产品, 违反了开闭原则。 一般可以采用简单工厂并借助反射的功能, 解决这个不足。 C# 中自带反射的功能, 但是我们C++居然没有, 这个一个比较讨厌的地方, 于是, 我们研究了相关内容, 参考了一些文章,
2016-03-24 19:47:41 1343
转载 C++反射的实现
C++反射的实现参考了wxWidgets的相关代码,并进行简化,同时借鉴了网上的相关内容,改进之处在于,只需要继承基本类Object,在类的头文件中定义宏,DECLARE_CLASS(类名),在类的实现文件中定义宏,IMPLEMENT_CLASS(类名),即可,欢迎指正。 代码以来的库都是C++标准库,所以不需要额外添加库。 例如: #include#inclu
2016-03-24 19:16:44 594
原创 LeetCode 133. Clone Graph
题目描述: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ’s undirected graph serialization: Nodes are labeled uniquely. We use # as a separ
2016-03-24 14:26:30 1442
原创 单例模式的简单小结 C++
单例模式: 保证一个类只有一个实例, 并提供一个访问他的全局访问点 通常当我们需要确保一个类只有一个实例的时候, 应该选用单例模式, 让类自身负责保存他的唯一实例。这个类可以保证没有其他实例被创建, 同时提供一个访问这个唯一实例的一个方法。 一般我们可以使用 私有构造方法来实现这个功能, 让外界无法 new 出这个类的对象。代码如下:/*****************************
2016-03-24 11:38:17 551
原创 迭代器模式小结
今天看了下迭代器模式, 发现这个模式和C++的stl中的容器所提供的迭代器非常类似, 就不在额外敲代码了, 说下对他的小结吧。 迭代器模式: 提供一种方法可以顺序访问一个聚合对象中的各个元素, 而又不会暴露该对象的内部表示。 ie, 当需要访问一个聚集对象, 并且不用管这些对象都是什么时候需要遍历的时候, 就需要考虑使用迭代器模式。 迭代器模式 为遍历不同的聚集结构提供了各种统一的接口,如C
2016-03-24 09:48:27 475
原创 使用组合模式实现公司结构管理 C++
组合模式: 就是将对象组合成树形结构以表示’部分–整体’ 关系的层次结构。 组合模式使得对象对单个对象和组合对象的使用具有一致性。 组合模式的基类,为对象声明接口, 在适当的情况下, 实现所有类的默认行为, 声明一个接口用于访问和管理子对象的部件。 透明模式和安全模式: 透明模式,是指子类中的所有对象都有着和基类相同的访问接口, 缺点是, 对一些叶节点而言有些接口是没有意义的。 安全模式,
2016-03-24 09:23:55 640
原创 使用备忘录模式实现游戏进度备份 C++
备忘录模式: 在不破坏封装性的前提下, 捕获一个对象的内部状态, 并在该对象之外保存这个状态, 这样以后就可以将该对象恢复到原先保存的状态。 他将需要保存的数据状态封装在了 一个 专有的类中,当需要更改的时候, 也不会影响到客户端的代码。 他适用于功能复杂, 但需要维护或者记录属性历史的类, 或者需要保存的属性只是众多属性中的一小部分的时候, 可以根据保存的 状态信息还原之前的状态信息。
2016-03-24 08:11:09 619
原创 Leetcode 134. Gas Station
题目描述: There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from statio
2016-03-23 22:21:27 535
原创 LeetCode 138. Copy List with Random Pointer
题目描述: A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list.解题思路: 我也不记得这道题在哪里看到过, 基本思
2016-03-23 20:26:42 482
原创 LeetCode 142. Linked List Cycle II
题目描述: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note: Do not modify the linked list. Follow up: Can you solve it without using extra spa
2016-03-22 23:35:01 304
原创 LeetCode 143. Reorder List
题目描述: Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes’ values. For example, Given {1,2,3,4}, reo
2016-03-22 23:00:16 302
原创 Leetcode 145. Binary Tree Postorder Traversal
题目描述: Given a binary tree, return the postorder traversal of its nodes’ values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [3,2,1]. Not
2016-03-22 14:34:11 446
原创 使用适配器模式模拟篮球队翻译 C++
说下对适配器模式的理解: 适配器模式: 将一个类的接口转换成客户希望的另外一个接口, 他使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 ie, 系统的数据和行为都是正确的, 但是接口不服符合时, 我们就应该考虑使用适配器, 目的是使得控制范围之外的一个原有对象与某个接口匹配。 适配器模式主要应用于希望复用一些现存的类, 但是接口又与复用环境不一致的情况。 一般在后期维护, 或者调用
2016-03-22 13:27:30 603
原创 使用状态模式实现加班状态变化C++
说下对状态模式的理解: 状态模式:当一个对象的内在状态改变时候, 允许改变其行为, 这个对象看起来像是改变了其类。 主要用来解决,当控制一个对象状态转化的条件表达式过于复杂的情况。我们可以把状态的判断逻辑转移到表示不同状态的一系列类中去, 可以实现把复杂的判断逻辑简化。 通俗的来讲, 就是可以利用状态模式将一个类中含有大量分支判断的方法做到责任分解。消除庞大的条件分支语句。需要特别说明的是,
2016-03-21 23:04:03 519
原创 LeetCode 147. Insertion Sort List
题目描述: Sort a linked list using insertion sort.我们知道插入排序的基本思想, 和我们斗地主时候整理手牌的顺序的方法非常类似, ie, 前 i 个数组成了一个排序后的序列, 当插入第 i + 1 个数的时候, 只需要遍历这个数组找到新元素应该插入的位置, 就可以实现插入排序了。 当然, 由这个插入位置的而不同, 可以引发不同的插入排序方法的变种, 2
2016-03-21 16:06:17 415
原创 matlab 文件夹操作
今天处理实验室拍图的数据, 因为主体的流程是用matlab编写的, 拍的图片文件格式也相对比较固定, 就需要我们写一个接口, 将文件中的数据提取出来, 转化为一个主体程序接受的数据格式, 这就涉及到了matlab 的文件夹操作了。 因为好久没写这样的代码了, 有些生疏, 不过还好比较简单, 这里做一个比较浅显的小结。 主要用到了 isdir, dir, strncmp, load 这么几个函数,
2016-03-21 11:15:57 1073
转载 Python笔记——类定义
点我进入原文一、类定义:class :类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象类的私有属性:__private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问在类内部的方法中使用时 self.__private_attr
2016-03-21 09:08:14 353
转载 关于python文件操作
这篇文章中关于python的API记录蛮全的, 转过来方便自己查阅关于python文件操作总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指
2016-03-21 09:04:26 337
原创 统计文件内数据 Python
python 是一门很简单的脚本语言, 不过很久没用了, 好多东西都忘得差不多了。正好昨天晚上,老板让测试相机的拍图时间, 于是我们连续抓取了200幅图像, 并他们的拍图时间间隔写入到了txt文件中。 使用C++一个while循环可以很容易的解决这个问题, 不过突然间想装逼, 练习下python的使用。 程序很简单, 就是要实现对文件内每行数据的读取, 计算他们的均值。 涉及python类的书
2016-03-21 09:01:49 1984
ImageWatch
2017-01-03
30天自制操作系统 pdf part1
2016-11-22
30天自制操作系统 电子书 part2
2016-11-22
30天自制操作系统的光盘part1
2016-11-22
winHex18.5 x86_x641
2016-11-22
chatbot3 源码
2016-11-19
8皇后问题七届源代码
2015-05-19
vs2013+opencv2.4.9配置环境
2015-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人