<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Skillness]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/skillness2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; skillness2]]></copyright><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/78684405</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/78684405</guid><author>skillness2</author><pubDate>Fri, 01 Dec 2017 10:56:42 +0800</pubDate><description><![CDATA[https://www.baidu.com/img/bd_logo1.png’ onload=”alert(document.cookie)”>]]></description><category></category></item><item><title><![CDATA[python无脑搜索引擎实现<一>]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/49807359</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/49807359</guid><author>skillness2</author><pubDate>Thu, 12 Nov 2015 23:55:43 +0800</pubDate><description><![CDATA[越来越多没填的坑。而我还在开新的坑。。。。。。 
这次实现了一个搜索引擎，语言为python，搜索内容为自己从知乎上面抓下来的10万个问题。仅搜索问题题目。以下大概是搜索效果：其实搜索引擎的建立基础流程也就那样，最主要的是大量，不不不，巨量的数据处理，巨量的算法，巨量的排序。下面是流程分析：一 爬取网页这一块感觉没啥好说的， 就是学了两三天scrapy，当然其中很多的弯弯绕绕我也没搞懂，但是基本的使]]></description><category></category></item><item><title><![CDATA[C++（也许算是吧）+Linux 简易web服务器实现（with EPOLL&THREAD POLL)（1）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/49539077</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/49539077</guid><author>skillness2</author><pubDate>Sun, 01 Nov 2015 00:06:04 +0800</pubDate><description><![CDATA[简述大约一个多月前有选择性地看完了unix网络编程这本书，知道了基本的SOCKET操作和流程，知道了在SOCKET下进行I/O操作时的一些注意事项，然而，还是觉得应该把这本书学过的一些东西揉在一起做个小玩意儿出来才尽兴啊，要不然啥也记不住啊。 
所以使用了epoll+线程池的模型实现了一个简易的web服务器，多简易？只支持HTTP协议中的get方式获取网页。我的服务器的实现基础是逻辑上单线程，I/O]]></description><category></category></item><item><title><![CDATA[C++对象模型<一>]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/48665233</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/48665233</guid><author>skillness2</author><pubDate>Tue, 22 Sep 2015 23:21:20 +0800</pubDate><description><![CDATA[封装带来的负担？假设在C语言中有如下代码：typedef struct point3d
{
    float x;
    float y;
    float z;
}Point3d;void func()
{
    Point3d *pd = get_a_point();
    printf("(%g, %g, %g )", 
}如果转换为C++则我们会倾向于使用抽象数据类型来封装(ADT]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第七章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/48010079</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/48010079</guid><author>skillness2</author><pubDate>Wed, 26 Aug 2015 21:00:37 +0800</pubDate><description><![CDATA[复制实参的局限性（值传递）不适合复制实参的情况包括：
当需要在函数中修改实参的值时。 
当需要以大型对象作为实参传递时。对实际的应用而言，复制对象所付出的时间和存储空间代价往往过大。
当没有办法实现对象的复制时。
通过引用传递数组通常，数组以非引用类型传递，此时数组会转换为指向第一个元素的指针，形参中数组大小并没有意义。然而如果形参是数组的引用，则编译器不会将数组实参转化为指针，而是传递数组引用本身]]></description><category></category></item><item><title><![CDATA[Linux下简单Shell实现（三）获取任务列表]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47915433</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47915433</guid><author>skillness2</author><pubDate>Sun, 23 Aug 2015 23:10:55 +0800</pubDate><description><![CDATA[如果看过上一篇的话，还会记得在本Shell中main函数内第一条实质性的指令是getTaskList(task_queue);在本节，就会讲解这个获取任务列表，并存储到任务队列中的函数，到底在干什么。 
我先把整个函数摆在下面，然后逐一讲解（先不要看下面这一大段代码）void getTaskList(queue<string> & task_queue)
{
    while(!task_queu]]></description><category></category></item><item><title><![CDATA[Linux下简单Shell实现（二）基本功能---主函数及init()函数]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47911989</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47911989</guid><author>skillness2</author><pubDate>Sun, 23 Aug 2015 22:14:36 +0800</pubDate><description><![CDATA[主函数流程介绍完了Shell的基本情况，就开始描述代码了。首先如下代码段所示为主函数的内容，一共只有几句话，但却是本Shell的一个基本工作流程。//main.cpp
#include"tlsh.h"
int main()
{
    init();    //初始化
    queue<string> task_queue;    //任务队列
    while(true)
    {]]></description><category></category></item><item><title><![CDATA[Linux下简单Shell实现（一）前言]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47847615</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47847615</guid><author>skillness2</author><pubDate>Fri, 21 Aug 2015 23:55:01 +0800</pubDate><description><![CDATA[看完了APUE后，打算写一个简单的Shell练练手，于是就实现了一个最最基本的Shell。]]></description><category></category></item><item><title><![CDATA[Unix 网络编程基础----网络字节序（大端小端）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47706509</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47706509</guid><author>skillness2</author><pubDate>Sun, 16 Aug 2015 21:12:38 +0800</pubDate><description><![CDATA[什么是字节序?
内存中多字节值在内存中的存储方式
 考虑一个16位整数0x1122，由两个字节组成，其在内存中有两种存储方法：网际协议使用大端字节序传送多字节整数 
主机字节序判断方法1. 使用union:#include<iostream>using namespace std;int main()
{
    union {
        short s;
        char c[siz]]></description><category></category></item><item><title><![CDATA[Unix 网络编程基础----套接字地址结构]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47705757</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47705757</guid><author>skillness2</author><pubDate>Sun, 16 Aug 2015 20:33:55 +0800</pubDate><description><![CDATA[IPv4套接字地址结构struct in_addr{
    in_addr_t s_addr
}; struct sockaddr_in{
    uint8_t         sin_len;
    sa_family_t     sin_family;
    in_port_t       sin_port;    struct in_addr  sin_addr;    char]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第六章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47026303</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47026303</guid><author>skillness2</author><pubDate>Thu, 23 Jul 2015 18:09:59 +0800</pubDate><description><![CDATA[for语句易错点在for语句 
for(init-statement; condition; expression)中，init_statement部分可定义多个变量，但是必须具有相同的一般类型，如：for(int ival = 0, *pi = ia, &ri = val;
    ival != size;
    ++ival, ++pi, ++ri)
    {
        //do s]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第五章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47026019</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47026019</guid><author>skillness2</author><pubDate>Thu, 23 Jul 2015 17:51:38 +0800</pubDate><description><![CDATA[C++风格的强制类型转换
命名的强制类型转换符号的一般形式如下：cast-name<type>(expression);其中，cast-name为以下中的四种操作符之一，type是转换的目标类型，而expression是被强制转换的值，返回为转换后的结果。static_cast平时使用的编译器隐式执行的任何类型转换都可以通过static_cast执行。 
示例：double d = 97;]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第四章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47025399</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47025399</guid><author>skillness2</author><pubDate>Thu, 23 Jul 2015 17:13:45 +0800</pubDate><description><![CDATA[动态分配的数组的初始化int *pia2 = new int[10]();
//后面跟着括号可以默认初始化为0值删除动态分配的数组delete [] pia;
//中括号不能忘多维数组初始化
初始化每行的第一个元素：
int ia[3][4] = {{0},{4},{8}};
初始化第一行的四个元素：
int ia[3][4] = {0,3,6,9};数组指针int *ip[4]; //Array]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第三章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/47001119</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/47001119</guid><author>skillness2</author><pubDate>Wed, 22 Jul 2015 11:43:35 +0800</pubDate><description><![CDATA[1. const指针
  语法说明
  含义  const int *ptr;
  const限定了ptr指针所指向的对象类型，而非ptr本身。ptr本身可以指向另一个对象，但不能通过ptr修改指向的对象的指。
  int *const ptr;
  在这里，ptr本身的值不能改变，但可以通过ptr修改ptr所指向的对象的值。 特别说明:typedef string *pstring;
const]]></description><category></category></item><item><title><![CDATA[C++ Primer 复习杂记（第二章）]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/46992415</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/46992415</guid><author>skillness2</author><pubDate>Tue, 21 Jul 2015 21:55:48 +0800</pubDate><description><![CDATA[杂项
任何非0值(包括负数）都是true。
变量提供了程序可以操作的有名字的存储区
标识符不能包含两个连续的下划线，不能以下划线开头后跟一个大写字母，函数外定义的标识符不能以下划线开头。
魔数（magic number）指在上下文中无法找到其意义的数。
能定义在c++头文件中的三种例外：
  能够定义在头文件中的三种例外  类
  值在编译时就已经确定的const对象
  inline函数
cons]]></description><category></category></item><item><title><![CDATA[纯基于openCV的flappy_bird，并附上源码，素材，以及示例程序]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/41879463</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/41879463</guid><author>skillness2</author><pubDate>Thu, 11 Dec 2014 23:29:58 +0800</pubDate><description><![CDATA[和媳妇儿一直想一起写个游戏，但是时间都花在了C++和算法导论上面，没什么时间拿起一套游戏引擎来学习，因为在实验室主要做图像处理方面的工作，于是突发奇想，用opencv实现了这个flappy_bird的游戏，可能有一些粗糙，但还是拿出来和大家交流一下，用计算机视觉库做游戏，想想也是奇葩。
游戏效果大概就是这个样子，刨去了一些没什么用的东西（排行榜，分享，暂停等），看起来和手机上也没多大区别了。]]></description><category></category></item><item><title><![CDATA[opencv2 kalmanfilter 卡尔曼滤波器，物体追踪源码，c++]]></title><link>https://blog.youkuaiyun.com/skillness2/article/details/21129341</link><guid>https://blog.youkuaiyun.com/skillness2/article/details/21129341</guid><author>skillness2</author><pubDate>Thu, 13 Mar 2014 00:01:18 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;
Mat img(1000, 1000, CV_8UC3);
Point Pt,Pt_pre; 
Mat state(4, 1, CV_32F);

static void onMouse(int event, int]]></description><category></category></item></channel></rss>