<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[观海云远的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/glx2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; glx2012]]></copyright><item><title><![CDATA[代码实现 由二叉树的先序遍历和中序遍历推出后序遍历]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/11674511</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/11674511</guid><author>glx2012</author><pubDate>Sat, 14 Sep 2013 10:45:33 +0800</pubDate><description><![CDATA[1 #include 
      2
      3 using namespace std;
      4
      5 #define MAX 100
      6
      7 char preOrder[MAX] = {'A','B', 'D', 'E', 'G', 'C', 'F'};
      8 char inOrder[MAX] = {'D', 'B', 'E', 'G]]></description><category></category></item><item><title><![CDATA[梯度下降法（一）入门]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/9369343</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/9369343</guid><author>glx2012</author><pubDate>Thu, 18 Jul 2013 15:59:35 +0800</pubDate><description><![CDATA[梯度下降法是一个一阶最优化算法，通常也称为最速下降法。我之前也没有关注过这类算法。最近，听斯坦福大学的机器学习课程时，碰到了用梯度下降算法求解线性回归问题，于是看了看这类算法的思想。今天只写了一些入门级的知识。










我们知道，函数的曲线如下：




编程实现：c++ code





[cpp] view
 plaincopy]]></description><category></category></item><item><title><![CDATA[梯度下降算法]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/9369153</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/9369153</guid><author>glx2012</author><pubDate>Thu, 18 Jul 2013 15:58:33 +0800</pubDate><description><![CDATA[引用这篇博文；主要是因为它介绍的机器学习中概念性知识（通俗易懂），以后会经常见到。

例如： 回归   特征   模型（拟合的函数）   输入数据的维数（特征的个数）  训练数据（训练集、样本）

后面介绍的梯度下降算法不是很好懂。







回归与梯度下降：

   回归在数学上来说是给定一个点集，能够用一条曲线去拟合（描绘）之，如果这个曲线是一条直线，那就被称为]]></description><category></category></item><item><title><![CDATA[你熟悉构造函数的调用吗？]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8823160</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8823160</guid><author>glx2012</author><pubDate>Fri, 19 Apr 2013 11:31:14 +0800</pubDate><description><![CDATA[#include 
using namespace std;

class Base {
	friend ostream& operator<<(ostream &os,Base &b);
public:
	Base() {
		cout << "Base()" << endl;
	}
	~Base() {
		cout << "~Base()" << endl;
	}
	Base(const B]]></description><category></category></item><item><title><![CDATA[公司中 C和C++程序员进阶之路]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8821647</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8821647</guid><author>glx2012</author><pubDate>Thu, 18 Apr 2013 22:54:38 +0800</pubDate><description><![CDATA[从一次考试说起。

2010年10月份，综合部邀请我给新入职3个月的员工草拟考试试题，这些同事大部分在公司做的实习，算起来至少也有5、6个月的工作经验了吧。

试题的内容，是针对日常需要面对的问题出的案例，比如，查找文件、修改下权限等，其中最后20分题，就是按要求在屏幕上输出一个由数字组成的菱形。说这些无非是想说明，考题比较简单。但考试的结果却是，有人得到80多分，有人得到20多分，相互间]]></description><category></category></item><item><title><![CDATA[Linux进程间通信（IPC）]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8821104</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8821104</guid><author>glx2012</author><pubDate>Thu, 18 Apr 2013 21:18:54 +0800</pubDate><description><![CDATA[linux下进程间通信的几种主要手段简介：


管道（Pipe）及有名管道（named pipe，又称为FIFO）：管道可用于具有亲缘关系进程间的通信。有名管道克服了管道没有名字的限制，因此，除具有管道所具有的功能外，它还允许无亲缘关系进程间的通信；
信号（Signal）：信号是比较复杂的通信方式，用于通知接受进程有某种事件发生，除了用于进程间通信外，进程还可以发送信号给进程本身。
报文]]></description><category></category></item><item><title><![CDATA[C内存重叠问题，memcpy，memmov，strcpy]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8815014</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8815014</guid><author>glx2012</author><pubDate>Wed, 17 Apr 2013 17:26:19 +0800</pubDate><description><![CDATA[memcpy，memmove：它们都是从src所指向的内存中复制count个字节到dst所指内存中，并返回dst的值。当源内存区域和目标内存区域无交叉时，两者的结果都是一样的。但有交叉时不一样。源内存和目标内存交叉的情况有以下两种：（左边为低地址）

即：dstsrc



针对第一种交叉情况情况，dstsrc，memcpy和memmove的结果是一样的。请看下面的例子讲解：
int]]></description><category></category></item><item><title><![CDATA[[C++]关于指针作为函数参数传递]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8813993</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8813993</guid><author>glx2012</author><pubDate>Wed, 17 Apr 2013 15:02:01 +0800</pubDate><description><![CDATA[【例1】Test函数的语句GetMemory(str, 100)并没有使str获得期望的内存，str依旧是NULL，为什么？

-----------------------------------------------------------------------------------------------------------------------------------
v]]></description><category></category></item><item><title><![CDATA[详解结构体、类等内存字节对齐]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8787073</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8787073</guid><author>glx2012</author><pubDate>Thu, 11 Apr 2013 10:57:43 +0800</pubDate><description><![CDATA[先说个题外话：早些年我学C程序设计时，写过一段解释硬盘MBR分区表的代码，对着磁盘编辑器怎么看，怎么对，可一执行，结果就错了。当时调试也不太会，又根本没听过结构体对齐这一说，所以，问题解决不了，好几天都十分纠结。后来万般无奈请教一个朋友，才获悉可能是结构体对齐的事，一查、一改，果真如此。

    问题是解决了，可网上的资料多数只提到内存对齐是如何做的，却鲜有提及为什么这样做(即使提，也相当简]]></description><category></category></item><item><title><![CDATA[百度实习生笔试面试经历总结]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8786370</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8786370</guid><author>glx2012</author><pubDate>Thu, 11 Apr 2013 09:17:57 +0800</pubDate><description><![CDATA[前序：百度公司每年在5月份左右开始暑期实习生招聘，9，10月份进行校园招聘，4月中旬在网上进行了百度实习生网申，投的是C++岗位，经过半个多月的突击准备，刚刚结束了笔试，技术一面，技术二面和HR三面，中午刚回来，现在还在等待结果中……今天想通过这篇博客，总结一下自己在这次百度实习生笔试和面试过程中的一些心得体会，希望和大家一起交流一下。

 

笔试：时间2012-5-6 10:00]]></description><category></category></item><item><title><![CDATA[数据库索引和B-tree的联系]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8774038</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8774038</guid><author>glx2012</author><pubDate>Mon, 08 Apr 2013 19:03:23 +0800</pubDate><description><![CDATA[一、引言
数据库索引是什么样的？聚集索引与非聚集索引有什么不同？数据库索引使用最多的数据结构是什么？
二、B-Tree
我们常见的数据库系统，其索引使用的数据结构多是B-Tree或者B+Tree。例如，MsSql使用的是B+Tree，Oracle及Sysbase使用的是B-Tree。又不懂的可以看我的另外一篇博客http://blog.youkuaiyun.com/glx2012/article/det]]></description><category></category></item><item><title><![CDATA[B树（即B-tree）、B+树、B*树]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8773962</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8773962</guid><author>glx2012</author><pubDate>Mon, 08 Apr 2013 18:28:09 +0800</pubDate><description><![CDATA[具体讲解之前，有一点，再次强调下：B-树，即为B树。因为B树的原英文名称为B-tree，而国内很多人喜欢把B-tree译作B-树，其实，这是个非常不好的直译，很容易让人产生误解。如人们可能会以为B-树是一种树，而B树又是一种一种树。而事实上是，B-tree就是指的B树。特此说明。


B-树
       是一种多路搜索树（并不是二叉的）：
       1.定义任意非叶子结点最多只有M]]></description><category></category></item><item><title><![CDATA[字符串常量放在内存中的静态存储区]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8771943</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8771943</guid><author>glx2012</author><pubDate>Mon, 08 Apr 2013 13:39:15 +0800</pubDate><description><![CDATA[一、在C++中，内存分成5个区，他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈，就是那些由编译器在需要的时候分配，在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。


堆：就是那些由new分配的内存块，他们的释放编译器不去管，由我们的应用程序去控制，一般一个new就要对应一个delete。如果程序员没有释放掉，那么在程序结束后，操作系统会自动回]]></description><category></category></item><item><title><![CDATA[Singleton 考虑内存的释放和多线程]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8771269</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8771269</guid><author>glx2012</author><pubDate>Mon, 08 Apr 2013 10:45:55 +0800</pubDate><description><![CDATA[GOF的《设计模式》中这样描述：保证一个类仅有一个实例，并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问，但它不能阻止你实例化多个对象。一个最好的办法是，让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建，并且它可以提供一个访问该实例的方法。

也就是说，很多时候我们需要全局的对象，如一个工程中，数据库访问对象只有一个，这时，可以考虑使用单例模式。单例]]></description><category></category></item><item><title><![CDATA[总结C++中的一些特殊情况]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8768687</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8768687</guid><author>glx2012</author><pubDate>Sun, 07 Apr 2013 17:21:57 +0800</pubDate><description><![CDATA[1. 当x为负的奇数时，右移位和除法运算的结果不相等。其他（正数、负偶数）情况一样。
    因为负数在内存中是以补码的方式存储的

2.     char *str = "microsoft";
cout 
cout 
输出的是整个字符串（比较特殊，不明白为什么）
3.  strlen遇到/0的时候结束。和sizeof的区别。
#include 
#include 
using]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8766790</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8766790</guid><author>glx2012</author><pubDate>Sun, 07 Apr 2013 11:27:18 +0800</pubDate><description><![CDATA[一、预备知识—程序的内存分配  
  一个由C/C++编译的程序占用的内存分为以下几个部分  
  1、栈区（stack）：  由编译器自动分配释放，存放函数的参数值，局部变量的值等。其  
  操作方式类似于数据结构中的栈。  
  2、堆区（heap）：  一般由程序员分配释放，若程序员不释放，程序结束时可能由OS回  
  收 。注意它与数据结构中的堆是两回事，分配方式倒是类似于链]]></description><category></category></item><item><title><![CDATA[进程和线程的区别和联系]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8766586</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8766586</guid><author>glx2012</author><pubDate>Sun, 07 Apr 2013 11:12:42 +0800</pubDate><description><![CDATA[进程（process）是并发执行的程序在执行过程中分配和管理资源的基本单位，是一个动态概念，竞争计算机系统资源的基本单位。每个进程都有一个自己的地址空间，即进程空间（虚空间）。
线程（thread）线程是进程的一个实体，是CPU调度和分派的基本单位，它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源，只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)，但是它可与同属]]></description><category></category></item><item><title><![CDATA[指针加减操作，当a为数组时a和&a的区别]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8737613</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8737613</guid><author>glx2012</author><pubDate>Wed, 03 Apr 2013 16:24:08 +0800</pubDate><description><![CDATA[求值：int *a[6][3]; int expr=a[5]-a[2];          
输出expr=9.
1.  二维数组元素的地址 
    为了说明问题, 我们定义以下二维数组: 
     int a[3][4]={{0,1,2,3}, {4,5,6,7}, {8,9,10,11}}; 
a为二维数组名, 此数组有3行4列, 共12个元素。但也可这样来理解, 数组a由三个元]]></description><category></category></item><item><title><![CDATA[字符数组和字符指针]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8733435</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8733435</guid><author>glx2012</author><pubDate>Thu, 28 Mar 2013 21:03:55 +0800</pubDate><description><![CDATA[1.字符数组是由若干个数组元素组成的，每个元素占用一个存储单元，保存一个字符。
   例子： char s[50];   定义了一个字符数组，编译器将会分配50个连续的存储单元。
2.字符串指针变量本身是一个变量，用来保存字符串常量(指向的内容可能是常量)的首地址。如果字符串指针变量没      初始化而使用，将产生不可预料的后果。
   例子： char *ps; 定义字符串指针变量，编译]]></description><category></category></item><item><title><![CDATA[Eclipse CDT 中 while(cin>>s) 结束方法]]></title><link>https://blog.youkuaiyun.com/glx2012/article/details/8445293</link><guid>https://blog.youkuaiyun.com/glx2012/article/details/8445293</guid><author>glx2012</author><pubDate>Thu, 27 Dec 2012 21:21:05 +0800</pubDate><description><![CDATA[使用Eclipse-cdt做开发的同学可能会遇到这样的问题，需要输入EOF作为结束标志结束输入，但是不知道怎么结束输入。
在网上搜了一堆解决方法，都是说windows下使用 Ctrl+Z 做EOF信号，unix和linux下用 Ctrl+D 做EOF信号。自己在Eclipse-cdt中试一下，发现这招行不通。
例如调试和运行以下代码，使用 Ctrl+D 也是无法终止输入的。

int ma]]></description><category></category></item></channel></rss>