<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[extend_die的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/extend_die</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; extend_die]]></copyright><item><title><![CDATA[台大机器学习基石作业编程题]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/52130931</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/52130931</guid><author>extend_die</author><pubDate>Fri, 05 Aug 2016 17:09:08 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[c++11 多线程 二  锁和互斥量]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/50131583</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/50131583</guid><author>extend_die</author><pubDate>Tue, 01 Dec 2015 16:49:00 +0800</pubDate><description><![CDATA[Locks
mutex（互斥量）是 核心同步原语（原语：OS术语，由若干指令组成，用于完成一定功能的一个过程）。在头文件中


有四种不同形式的的互斥量：
•mutex:提供核心方法lock() unlock() 无阻塞 try_lock()（返回互斥量是否无法使用）
•recursive_mutex:允许同一线程多次获得互斥量
•timed_mutex:和mutex一样，但比它多两]]></description><category></category></item><item><title><![CDATA[C++11 多线程 一]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/50111191</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/50111191</guid><author>extend_die</author><pubDate>Mon, 30 Nov 2015 13:34:39 +0800</pubDate><description><![CDATA[本周决定 搞定c++11 多线程


Threads
std::thread 在头文件，可以配合常规函数，匿名函数（lambdas),仿函数使用，并支持传递任意类型和个数参数传递给绑定的线程函数


#include "stdafx.h"
#include 
#include 
#include 

void func(int n1, int n2, std::string str)]]></description><category></category></item><item><title><![CDATA[代码整洁之道]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/50057307</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/50057307</guid><author>extend_die</author><pubDate>Thu, 26 Nov 2015 16:11:47 +0800</pubDate><description><![CDATA[代码整洁之道


本书写作目的及阅读对象：想成为更好的程序员


第一章  整洁代码
1.代码将永存——明确需求细节，直到机器可以执行，就是编程
2.糟糕代码毁掉公司
3.混乱代码难维护，为以后发展留下隐患
4.简洁代码：
1）能通过所有测试
2）没有重复代码
3）体现系统中的全部设计理念
4）包括尽量少的实体，比如类、方法、函数等
重要的两点：消除重复代码和提高表达]]></description><category></category></item><item><title><![CDATA[C++11  智能指针 unique_ptr shared_ptr weak_ptr]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/50055083</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/50055083</guid><author>extend_die</author><pubDate>Thu, 26 Nov 2015 13:59:51 +0800</pubDate><description><![CDATA[智能指针
智能指针是基于RAII机制实现的类(模板)，具有指针的行为(重载了operator*与operator->操作符)，可以“智能”地销毁其所指对象。C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针，可以对动态资源进行管理。智能指针是类而不是指针


shared_ptr
shared_ptr是一种引用计数指针，没有任何其它的shared_ptr]]></description><category></category></item><item><title><![CDATA[C++内存管理]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/50036723</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/50036723</guid><author>extend_die</author><pubDate>Wed, 25 Nov 2015 15:42:57 +0800</pubDate><description><![CDATA[C++内存管理
本篇为笔记 


一  基础部分  
1.c++内存分为5个区：栈，堆，自由存储区（与堆类似，用malloc分配，free释放）全局/静态存储区，常量存储区


堆与栈：

       1、管理方式不同；
　　2、空间大小不同；
　　3、能否产生碎片不同；
　　4、生长方向不同；
　　5、分配方式不同；
　　6、分配效率不同；
　　管理方式：对于栈]]></description><category></category></item><item><title><![CDATA[wsprintf和swprintf]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49638683</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49638683</guid><author>extend_die</author><pubDate>Wed, 04 Nov 2015 15:28:47 +0800</pubDate><description><![CDATA[wsprintf是windows API不支持浮点数
swprintf是C库函数 支持浮点数]]></description><category></category></item><item><title><![CDATA[handle与handler的区别]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49589471</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49589471</guid><author>extend_die</author><pubDate>Mon, 02 Nov 2015 17:22:11 +0800</pubDate><description><![CDATA[handle既是名词也是动词，而handler只是个名词。在计算机编程术语里handle作为名词时是对可进行管理的资源对象的抽象，handle指向某个类别的资源对象，如文件句柄，进程ID都可以用handle来表达，在当动词讲时含义是处理和操作。而handler表示的是过程（函数），理解为功能处理器的含义，如常用的回调函数可以用handler来表示。]]></description><category></category></item><item><title><![CDATA[Windows核心编程：内核对象]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49587853</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49587853</guid><author>extend_die</author><pubDate>Mon, 02 Nov 2015 16:13:48 +0800</pubDate><description><![CDATA[作者：shenzi

链接：http://hi.youkuaiyun.com/shenzi

Windows核心编程：内核对象 


1.对象和句柄 
   对象是静态定义的对象类型的单个运行时实例。对象类型包括系统定义的数据类型，在数据类型实例上的操作的函数以及一组对象属性集。
    对象为完成下列四种重要的操作系统任务提供了方便的方法：


为系统资源提供可读的名字；在进程间共享]]></description><category></category></item><item><title><![CDATA[临界区的实现与原理]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49587071</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49587071</guid><author>extend_die</author><pubDate>Mon, 02 Nov 2015 15:31:30 +0800</pubDate><description><![CDATA[临界区概述：

用于多线程的互斥访问。如果有多个线程试图同时访问临界区，那么在有一个线程进入临界区后，其他试图访问的线程将被挂起，直到进入临界区的线程离开。临界区在被释放后，其他线程可以继续抢占，并以此达到对临界区的互斥访问。（临界区中一般都是一个简短的代码段）
在WINDOWS中，临界区是一种应用层的同步对象，非内核对象。并且临界区优先采用自旋的方式进行抢占


临界区API：
]]></description><category></category></item><item><title><![CDATA[c++多线程 二]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49511005</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49511005</guid><author>extend_die</author><pubDate>Fri, 30 Oct 2015 14:12:10 +0800</pubDate><description><![CDATA[引言

C++11 是 2011 年 9 月 1 号发布的。C++11 在 C++03 的基础上做了大量的改进，引入了很多新的特性，比如 Lambda 表达式，右值引用，统一的列表初始化方式，正则表达式等等。当然，其中最令人激动的特性是新标准引入了原子操作类和线程支持库。C++ 一直在语言层面缺少对多线程的支持，因此 C++11 新标准基本上弥补了这一缺陷。可以毫不夸张地说，C++11 相当于]]></description><category></category></item><item><title><![CDATA[c/c++ 回调函数]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/49492673</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/49492673</guid><author>extend_die</author><pubDate>Thu, 29 Oct 2015 15:58:02 +0800</pubDate><description><![CDATA[回调一般是指一个模块中提供一个过程，通过另一个模块的API进行注册，然后由后者负责调用。简言之，前者负责提供函数或子过程，后者负责调用。
举两个最常见最简单的例子：
1。Windows的计时器机制：应用程序的开发者编写一个函数，用来完成一件事情，然后通过Windows系统的API：SetTimer注册到系统中，于是每当用户设置的时间间隔到来时，前面说的那个函数就被系统自动调用执行。这个函数就是]]></description><category></category></item><item><title><![CDATA[Effective C++ Item3]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/48243811</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/48243811</guid><author>extend_die</author><pubDate>Sun, 06 Sep 2015 14:25:59 +0800</pubDate><description><![CDATA[只要可能就用const
1.const 指针
T* const p   p 是const *p非const   p = p++ //ok *p = xx //error
const T* p   p非const  *p是const  p = p++ //error    *p=xx //ok
注意：这两种类型作为函数参数传递没有区别
2.const 成员函数
返回类型为const 引用]]></description><category></category></item><item><title><![CDATA[Effective C++ Item2]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/48136843</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/48136843</guid><author>extend_die</author><pubDate>Mon, 31 Aug 2015 17:23:11 +0800</pubDate><description><![CDATA[用const enum inlines 取代 #define


这个 Item
改名为“用 compiler（编译器）取代
 preprocessor（预处理器）”也许更好一些，因为
#define
根本就没有被看作是语言本身的一部分
1)常量
2）函数  参数自增情况下，#define会出问题


#define  适用情况
1)需要特定的宏定义满足编译选项需求
2]]></description><category></category></item><item><title><![CDATA[Effective C++ Item1]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/48136283</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/48136283</guid><author>extend_die</author><pubDate>Mon, 31 Aug 2015 16:52:09 +0800</pubDate><description><![CDATA[1.视C++为语言联合体
1）C部分  blocks(模块) statements(语句) preprocessor(预处理器) built-in data types(内建数据类型) arrays(数组) pointers(指针)
   预处理器是干什么的呢 预处理器
C/C++预处理器什么都不会做，只是做宏替换和文本替换。C/C++预处理是不会做任何语法检查的，不仅是因为它不具备语法检查]]></description><category></category></item><item><title><![CDATA[TCP/IP协议第一章阅读笔记]]></title><link>https://blog.youkuaiyun.com/extend_die/article/details/48133385</link><guid>https://blog.youkuaiyun.com/extend_die/article/details/48133385</guid><author>extend_die</author><pubDate>Mon, 31 Aug 2015 14:21:06 +0800</pubDate><description><![CDATA[1.TCO/IP起源
﻿﻿
 6 0年代末美国政府资助的一个分组交换网络研究项目，到 9 0年代已发展成为计算机之间最常应用的组网形式。
2.TCP/IP分层
网络协议通常分不同层次进行开发，TCP/IP通常被认为是一个四层协议系统：
                                                                             ]]></description><category></category></item></channel></rss>