利村村长
码龄9年
关注
提问 私信
  • 博客:41,978
    社区:217
    问答:4,379
    46,574
    总访问量
  • 39
    原创
  • 1,187,092
    排名
  • 4
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-08-04
博客简介:

xl2432的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得2次评论
  • 获得21次收藏
创作历程
  • 1篇
    2018年
  • 4篇
    2017年
  • 22篇
    2016年
  • 12篇
    2015年
成就勋章
TA的专栏
  • C++
    18篇
  • SDN
    2篇
  • Linux
    2篇
  • MySql
    2篇
  • LeetCode
    13篇
  • Windows驱动开发
  • 其他
  • Node.js
    3篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++11 线程池实现

    C++11中已经添加了跨平台的thread相关工具,在一些轻量级使用场景中,使用std::thread无疑会给我们带来很多方便。这里使用它实现了一个简单的线程池:EasyThreadPool.h#ifndef _EASY_THREAD_POOL_H_#define _EASY_THREAD_POOL_H_#include <thread>#include <mu...
原创
发布博客 2018.03.25 ·
728 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

nodejs借用管道实现流数据边取边处理

传统的服务器模型中,如果要返回一张本地图片给客户端,需要先读取该图片文件,再发送给客户端。而用nodejs则可以通过管道,将读文件的输入流和发送给客户端的输出流拼接起来,使得服务端无需做过多的处理就能实现数据的边取边处理,提高了服务器的效率。实例如下,一个简单的HTTP服务器,对任何请求都是返回一张图片。var http = require("http");var fs = requ
原创
发布博客 2017.10.09 ·
625 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

通过阻塞与非阻塞读取文件操作来认识回调函数

异步编程的主要靠回调实现。回调函数是指在完成任务后就会被调用的函数。目前Node.js的所有API都支持回调函数。 对于读取一个文件,我们可以选择等待文件读取完成在执行操作;也可以先去做别的事情,等文件读取完成时就自动文件内容作为回调函数的参数返回。 1. 以读取文件server.js为例,其阻塞的方法如下://阻塞读文件var fs = require('fs');var content =
原创
发布博客 2017.09.19 ·
1025 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Node.js创建第一个应用--HTTP服务器

使用require指令来载入http模块,并将其实例化复制给变量httpvar http = require("http");创建服务器,使用http.createServer()方法创建服务器,并绑定服务监听端口。函数中可以使用request/response参数来接收和响应数据。代码如下:var http = require('http');http.createServer(functi
原创
发布博客 2017.09.19 ·
604 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Ubuntu下配置VScode的C++编程环境

Ubuntu下配置VS code的C++编程环境1、安装VScode直接从官网下载源码包,解压后即可使用2、安装必要的开发环境包括:gcc、g++、gdb、build-essential、Clang3、安装必要插件目前安装的插件如下: 1. C/C++ 2. C/C++ Clang Command Adapter 3. C++ Intellisense 4. ClangComplete 5
原创
发布博客 2017.08.23 ·
8320 阅读 ·
1 点赞 ·
0 评论 ·
14 收藏

LeetCode 85. Maximal Rectangle(最大子矩阵)

链接:LeetCode 85. Maximal Rectangle这一题要用到直方图最大矩阵作为一个中间结果。class Solution {public: int maximalRectangle(vector>& matrix) { vector tmp; int len=matrix.size(); if(len==0) re
原创
发布博客 2016.09.04 ·
1484 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 84. Largest Rectangle in Histogram(直方图最大矩形)

链接:LeetCode 84. Largest Rectangle in Histogram(直方图最大矩形)class Solution {public: int largestRectangleArea(vector& heights) { int len=heights.size(); if(len==0) return 0; s
原创
发布博客 2016.09.04 ·
404 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

实现字符串拷贝strcpy和memcpy,以及字符串比较函数strcmp

这些函数是很容易出现在面试笔试中的,需要牢记,其实也是很容易实现的,只不过要考虑周全,注意异常情况判断。/**实现字符串拷贝*为什么要返回char*?(为了支持链式表达式,如strlen(strcpy(p,q)求复制后的长度))*/char* strcpy(char* strDest,const char* strSrc){ if(strDest==NULL||strSrc==
原创
发布博客 2016.08.28 ·
2270 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Linux下给进程重命名

系统提供函数prctl():#include int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);使用例子:prctl(PR_SET_NAME, “process_name”, NULL, NULL, NULL);不过这个函数更
原创
发布博客 2016.08.23 ·
2885 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

二叉树遍历的递归和非递归实现

LeetCode上有三题是直接分别对应二叉树的非递归遍历实现:144/94/145前序遍历:非递归和递归的方式差不多,主要是要注意左右子节点的入栈顺序和递归时恰好相反/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree
原创
发布博客 2016.08.09 ·
361 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode268. Missing Number

题目链接:https://leetcode.com/problems/missing-number/题目大意:一个数组有n个数,每个数取自0~n,各不相同,找出没有出现的那个数。这题简单,就不细说了,主要是限制条件是使用常量的额外空间,所以设一个标识数组的做法是行不通的。class Solution {public: int missingNumber(vector&
原创
发布博客 2016.08.02 ·
303 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode96.Unique Binary Search Trees

题目链接:https://leetcode.com/problems/unique-binary-search-trees/大意:给出一个正整数n,求n个不同数组成的排序二叉树的个数思路:二叉排序树的特点是每一个节点,它的左节点比它小,右节点比它大,运用到这一题,可以用动态规划的思想,每一个数都可以作为根节点,如n个数,1~n,当第k个数即k作为根节点时,1-(k-1)在它的左子树,元素数
原创
发布博客 2016.08.02 ·
247 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode108. Convert Sorted Array to Binary Search Tree

题目链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/大意:给出一个拍过徐的vector,将其转化为一颗排序二叉树,要求高度最低。分析:从排序二叉树的特点分析,就是做二分法。/** * Definition for a binary tree node. * struct Tree
原创
发布博客 2016.08.02 ·
281 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode22. Generate Parentheses

题目链接:https://leetcode.com/problems/generate-parentheses/大意:给一个整数n,列出n对()所能组成的所有合法排列例:n=3时,有四种排列["((()))","(()())","(())()","()(())","()()()"]分析:n对()就表示一共可以放n个左括号和n个右括号,记录下左括号和右括号的使用情况:只要左括号没有放完,
原创
发布博客 2016.08.01 ·
245 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

More Effective C++读书小记

1、仔细区别pointer和references      不论pointer或是references都使你间接参考其它对象。     没有所谓的null reference。一个reference必须总代表某个对象。     如果你有一个变量,其目的是用来指向(代表)另一个对象,但是也有可能它不指向(代表)任何对象,那么你应该使用pointer,因为你可以将指针设为null。换个角度
原创
发布博客 2016.07.18 ·
1377 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

C++实现一个不能被继承的类

要设计一个不能被继承的类,考虑C++11的新特性的话,有三种方法:(1)就是将该类的构造函数和析构函数设为private(或者仅仅将析构函数设为private),这样派生类无法调用基类的构造函数和析构函数,从而不能继承。要创建对象,可以在该类中设一个static成员函数,提供返回一个该类对象指针,这种方法比较普遍就不细说。需要注意的是这种方法导致对象只能在heap中产生。那如何能构造一个正常对
原创
发布博客 2016.07.17 ·
388 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Effective C++读书小记

1、视C++为一个语言联邦     对于内置类型而言,pass-by-value通常比pass-by-reference高效。()内置类型在按值传参时,只是将变量的值传递到栈上。 然后被调用函数将值取出后,使用即可。在按引用传参时,需要将被引用的变量的地址压栈, 然后被调用函数首先取出地址,然后再次根据地址寻址获取值。)     C++可分为四个部分:(1)C;(2)Objected-Or
原创
发布博客 2016.07.08 ·
1338 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode357. Count Numbers with Unique Digits

比较简单的做法是根据排列组合的知识算出n位数各位不相同的数字共有9*9*.....(9-n+2)个(n>=2),当n为1时是10个,然后累加就行。class Solution {public: int countNumbersWithUniqueDigits(int n) { if(n==0) return 1; else if(n==1) r
原创
发布博客 2016.07.01 ·
321 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode347. Top K Frequent Elements

先利用map统计各数的个数,再用vector存储统计结果,自定义vector排序class Solution {public: vector topKFrequent(vector& nums, int k) { vector m; if(k>=nums.size()) return nums; map cnt;
原创
发布博客 2016.06.30 ·
277 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++常考面试题

1、static关键字的作用(改变生命周期或者改变作用域)(1)static变量只会初始化一次,存储在静态数据区,具有记忆功能,默认初始化为0;(2)类的静态成员变量属于本类中的所有对象共享,不属于特定的类对象,由该类型的所有对象共享访问,只能在类外初始化;(3)类的静态成员函数也是属于整个类,而非类的对象,不接收this指针,因而只能访问类的静态成员变量;(4)模块内的静态全局变
原创
发布博客 2016.04.21 ·
1642 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多