<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[种树种树]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/temple_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; temple_]]></copyright><item><title><![CDATA[qt 2d做图的一些心得]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/79577806</link><guid>https://blog.youkuaiyun.com/temple_/article/details/79577806</guid><author>temple_</author><pubDate>Fri, 16 Mar 2018 10:29:00 +0800</pubDate><description><![CDATA[最近在用qt做一个可以显示2维折线图的小工具。用qt相关部分做的时候还是发现了一些问题，记录一下。
1.关于视口和窗口变换，最好不要用改变视口窗口变换来实现图像移动的功能。视口和窗口最好按照1:1变换，用来调整x，y轴方向和原点位置即可。如果说你讲一个500x500的窗口映射成300x10的视口，那么图像会变得很扁。
2.关于y轴的反转。窗口默认的y轴是朝下的，和我们习惯不同 ，用视口窗口变换]]></description><category></category></item><item><title><![CDATA[boost::any的简易实现版本]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/79384462</link><guid>https://blog.youkuaiyun.com/temple_/article/details/79384462</guid><author>temple_</author><pubDate>Tue, 27 Feb 2018 10:31:20 +0800</pubDate><description><![CDATA[前几天看到一个网络库中有boost::any类型的变量，后来搜索了一下发现挺有意思的，看到了这篇博客：http://blog.youkuaiyun.com/mfcing/article/details/44705831 boost::any的扩展和使用。这位老兄讲的很好，还给出了一个简易的实现版本，我在之基础上做了一些扩展，当然也是个简易版本。本代码中的各种构造函数都有printf标记，以供观察调用流程。最后...]]></description><category></category></item><item><title><![CDATA[java初学写一个快排压压惊]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/78786710</link><guid>https://blog.youkuaiyun.com/temple_/article/details/78786710</guid><author>temple_</author><pubDate>Tue, 12 Dec 2017 22:06:12 +0800</pubDate><description><![CDATA[之前一直是写c++的，有点怕c++的黑魔法啊看的头疼。正好最近要用java，看了一个下午+晚上的语法，有c++的基础看的快一点，写一个快排试试吧。package helloworld;import java.util.*;public class Home {    public static void main(String[] args) {
        // TODO Auto-gener]]></description><category></category></item><item><title><![CDATA[堆及堆排序c++实现]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/78755466</link><guid>https://blog.youkuaiyun.com/temple_/article/details/78755466</guid><author>temple_</author><pubDate>Fri, 08 Dec 2017 20:52:37 +0800</pubDate><description><![CDATA[堆及堆排序c++实现不眼高手低，基础的东西一定要弄懂弄透，各种边界情况都要考虑到，争取高效率0bug。最近看算法导论看到堆的部分了，今天再实现一遍。#pragma once
#include<iostream>
/*最大堆实现*/
namespace myheap {
template<class T>
class Heap {
public:
  using node_type = T;
  us]]></description><category></category></item><item><title><![CDATA[关于tcp协议可靠数据传输原理的记录]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77584748</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77584748</guid><author>temple_</author><pubDate>Fri, 25 Aug 2017 17:53:31 +0800</pubDate><description><![CDATA[首先各位推荐b站上的一个计算机网络课程，讲的很好很全面：
计算机网络之探赜索隐
http://www.bilibili.com/video/av8377571/


网络层的数据传输是不可靠的，分组在传送的过程中可能会产生位错误，延时，丢失等等情况。而运输层tcp协议的作用之一就是通过制定一系列规则让通信双方具有可靠的传输信道。
从这个角度来看，关于这部分内容，我们学习的其实是一种思想]]></description><category></category></item><item><title><![CDATA[关于红黑树的初步实现]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77528613</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77528613</guid><author>temple_</author><pubDate>Thu, 24 Aug 2017 12:26:34 +0800</pubDate><description><![CDATA[前两天看了stl源码剖析关于红黑树的部分，自己合上书仿写了一个，作为检验自己是否真的搞懂了红黑树。当然主要的思路和写法和书上的一样，这里将红黑书删除部分也扩写了一下。如果有什么bug欢迎各位留言指出。
因为写的比较仓促，以后有时间会将代码重构一下，并说明关于删除部分的思路。



allocator.h 这个头文件是包装了malloc和free的简单空间配置器，本来一直想写一个内存池的奈]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item7]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77434616</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77434616</guid><author>temple_</author><pubDate>Sun, 20 Aug 2017 21:29:44 +0800</pubDate><description><![CDATA[Item7:Distinguish between() and {} when creating objects.
依据你的看法，c++11中对象初始化的语法选择包含了太过繁杂导致的窘迫和令人困惑的混乱。一个全面的条例说道，初始化变量可能会用到圆括号，等号或者大括号：
int x(0); //初始化表达式在圆括号里
int y = 0; //初始化表达式在=后面
int z{ 0 }; /]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item8]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77434572</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77434572</guid><author>temple_</author><pubDate>Sun, 20 Aug 2017 21:24:27 +0800</pubDate><description><![CDATA[Item 8:Prefer nullptr to 0 and NULL.
有一个协定：字面值0是一个int，不是一个指针。如果c++在只有指针可以被用到的地方发现了了0，它将会将0解释为一个null指针，但是这是一个备选计划。c++的主要政策是0是一个int，不是一个指针。
实际上，对于NULL来说是一样的。NULL的情况中细节方面上有一些不确定因素，因为NULL的实现取决于一个integra]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item16]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77340849</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77340849</guid><author>temple_</author><pubDate>Thu, 17 Aug 2017 20:35:50 +0800</pubDate><description><![CDATA[Item 16:Make const member functions thread safe.
如果我们工作在数学领域，也许我们会发现用一个类来代表多项式是很方便的。在这个类中，有可能有一个函数被用来计算多项式的root，例如，当多项式等于0时的值。这样的函数将不会修改多项式，所以很自然的我们会把他声明为const：
class Polynomial {
public:
using Ro]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item18]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77103741</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77103741</guid><author>temple_</author><pubDate>Fri, 11 Aug 2017 22:10:03 +0800</pubDate><description><![CDATA[Item18:Use std::unique_str for exclusive-ownership resource management.
当你需要一个智能指针的时候，std::unique_ptr一般是最容易用到的一种。有理由假设，在默认情况下，std::unique_ptr和原生指针有相同的大小以及大部分操作符（包括解引用操作符），它们执行完全相同的指令。这意味着你可以在存储和循环频繁发]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item2]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77103712</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77103712</guid><author>temple_</author><pubDate>Fri, 11 Aug 2017 22:06:14 +0800</pubDate><description><![CDATA[Item 2:Understand auto type deduction
如果你已经读过Item1中的模板类型推断，那么你已经知道几乎所有的你需要知道的关于auto类型推断的知识了。除了仅有的一个例外，auto类型推断就是模板类型推断。但它是如何做到的呢？模板类型推断含有模板和函数和参数，但是auto处理的东西并不包含这些。
那是事实，但是却不影响。模板类型推断和auto类型推断之间有着直接]]></description><category></category></item><item><title><![CDATA[Effective Modern C++翻译系列之Item1]]></title><link>https://blog.youkuaiyun.com/temple_/article/details/77074074</link><guid>https://blog.youkuaiyun.com/temple_/article/details/77074074</guid><author>temple_</author><pubDate>Thu, 10 Aug 2017 21:56:51 +0800</pubDate><description><![CDATA[当使用者在一个复杂系统上工作并且忽略其基础细节，并对于该系统的表现很满意，那么我们可以说这个系统的设计十分优良。按照这么说，c++中的模板类型推断是很成功的。很多开发者通过向模板函数传递参数得到了完全满意的结果，甚至他们中的很多人只是模糊的知道函数中的类型是如何被推断出来的。
如果你是那些人中的一份子，那我有一个好消息和一个坏消息。好消息是模板类型推断是现代c++中最引人注目的特性之一auto的]]></description><category></category></item></channel></rss>