<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[iFuMI的博客]]></title><description><![CDATA[坚持的魅力往往在于待回首时总会收获付出的感动-BigoSprite]]></description><link>https://blog.youkuaiyun.com/iFuMI</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; iFuMI]]></copyright><item><title><![CDATA[count(1)、count(*)与count(列名)的执行区别]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/77920767</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/77920767</guid><author>iFuMI</author><pubDate>Sun, 10 Sep 2017 11:04:17 +0800</pubDate><description><![CDATA[执行效果：

1.  count(1) and count(*)
当表的数据量大些时，对表作分析之后，使用count(1)还要比使用count(*)用时多了！ 
从执行计划来看，count(1)和count(*)的效果是一样的。 但是在表做过分析之后，count(1)会比count(*)的用时少些（1w以内数据量），不过差不了多少。 
 
如果count(1)是聚索引,id,那肯定是c]]></description><category></category></item><item><title><![CDATA[一个关于多态的问题]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/77574010</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/77574010</guid><author>iFuMI</author><pubDate>Fri, 25 Aug 2017 14:45:43 +0800</pubDate><description><![CDATA[2018华为daniuchang一面


#include 
using namespace std;


class A{
public:
	virtual void func(int a = 0){
		cout << a << endl;
	}

};

class B : public A{

public:
	virtual void func(int b = 1){
		cout]]></description><category></category></item><item><title><![CDATA[不使用virtual关键字实现C++多态]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/77524606</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/77524606</guid><author>iFuMI</author><pubDate>Thu, 24 Aug 2017 10:05:36 +0800</pubDate><description><![CDATA[#include 
using namespace std;

/*
	不使用virtual实现多态可以用成员函数指针完成。

    成员函数指针形式：返回类型（A::*指针名）（形参表）

                         其中A是类类型，即这个指针是指向A类的成员函数的函数指针

                         例如：int（A::*P）（int，int）这]]></description><category></category></item><item><title><![CDATA[2018届秋招提前批阿里在线编程]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/76794444</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/76794444</guid><author>iFuMI</author><pubDate>Sun, 06 Aug 2017 21:05:40 +0800</pubDate><description><![CDATA[/*
幼儿园有10个小朋友，把1 – 20中所有奇数数字的卡片分别发给这10个小朋友。
集合的时候小朋友们排成一排，组成一个由数字组成的字符串，如59731315….11917，
但是老师发现少了一个小朋友，你能帮忙找出少掉的那个小朋友吗？


1 3 5 7 9 11 13 15 17 19

// 1 7
// 3 2
// 5 2
// 7 2
// 9 2

思]]></description><category></category></item><item><title><![CDATA[《STL源码剖析》之hashtable]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/76175685</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/76175685</guid><author>iFuMI</author><pubDate>Thu, 27 Jul 2017 10:39:39 +0800</pubDate><description><![CDATA[hashtable即散列表，也叫哈希表，它对元素的插入、删除和访问操作具有常数时间复杂度的表现，这种表现不依赖于输入元素的随机性。]]></description><category></category></item><item><title><![CDATA[《STL源码剖析》之RB-tree]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/76093951</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/76093951</guid><author>iFuMI</author><pubDate>Tue, 25 Jul 2017 18:42:44 +0800</pubDate><description><![CDATA[AVL树之外，另一个被广泛运用的平衡二叉搜索树是RB-tree。所谓红黑树，不仅是一个二叉搜索树，它还满足以下性质：
性质1. 每个节点是红色或黑色；
性质2. 根是黑色；
性质3. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质4. 从任一节点到NULL（树尾端）的任何路径都包含相同数目的黑色节点。]]></description><category></category></item><item><title><![CDATA[平衡二叉搜索树之AVL树]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/76081267</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/76081267</guid><author>iFuMI</author><pubDate>Tue, 25 Jul 2017 16:30:00 +0800</pubDate><description><![CDATA[1 什么是二叉搜索树？
二叉查找树（Binary Search Tree），（又：二叉搜索树，二叉排序树）它或者是一棵空树，或者是具有下列性质的二叉树：
 若它的左子树不空，则左子树上所有结点的值均小于它的根结点的值； 若它的右子树不空，则右子树上所有结点的值均大于它的根结点的值； 它的左、右子树也分别为二叉排序树。


二叉搜索树规则是：
（1） 在查找和插入上很有效率，时间复杂度不]]></description><category></category></item><item><title><![CDATA[5.1.1 二叉搜索树]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/76079852</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/76079852</guid><author>iFuMI</author><pubDate>Tue, 25 Jul 2017 15:58:31 +0800</pubDate><description><![CDATA[《STL源码剖析》之二叉搜索树]]></description><category></category></item><item><title><![CDATA[对含有virtual function的class求sizeof]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/75503837</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/75503837</guid><author>iFuMI</author><pubDate>Thu, 20 Jul 2017 11:35:38 +0800</pubDate><description><![CDATA[#include 
using namespace std;

class A
{
public:
	virtual void func_1() {}
	virtual void func_2() {}
	virtual ~A() {}
};

class B
{
public:
	virtual void func_3() {}
};

class C : public B
{
public:
]]></description><category></category></item><item><title><![CDATA[一道考查对象模型的C++笔试题]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/75500497</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/75500497</guid><author>iFuMI</author><pubDate>Thu, 20 Jul 2017 11:02:17 +0800</pubDate><description><![CDATA[#include 
using namespace std;
class parent
{
	int i;
protected:
	int x;
public:
	parent() { x = 0; i = 0; }
	void change() { x++; i++; }
	void display();
};
class son :public parent
{
public:
	void m]]></description><category></category></item><item><title><![CDATA[面试题28：不能被继承的类]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/73196064</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/73196064</guid><author>iFuMI</author><pubDate>Tue, 13 Jun 2017 22:24:52 +0800</pubDate><description><![CDATA[在C#中定义了关键字sealed，被sealed修饰的类不能够被继承。在Java中同样也有关键字final表示一个类不能被继承。C++11提供final关键字使得类不能够被继承。那么，如何自己实现一个不被继承的类？常规的解法是，把类的构造和析构函数都设置为private即可，然后公有派生；这是因为子类访问不到父类私有属性。这使用了C++构造派生类实例时会自动先调用父类构造函数的特性，同样析构的顺序和]]></description><category></category></item><item><title><![CDATA[Unity3d 基于NGUI的虚拟摇杆实现]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/53066840</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/53066840</guid><author>iFuMI</author><pubDate>Mon, 07 Nov 2016 15:43:04 +0800</pubDate><description><![CDATA[实现效果预览C#代码实现： 
使用NGUI添加虚拟摇杆背景和其子物体按钮，为按钮Attach  boxcollider和ButtionScript。为按钮添加如下脚本：注意：其中的静态属性可以在控制物体移动的代码中访问用于控制。using UnityEngine;
using System.Collections;public class joyStickControl : MonoBehaviou]]></description><category></category></item><item><title><![CDATA[Cocos2d-x 3.x 生成和加载plist文件]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52939338</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52939338</guid><author>iFuMI</author><pubDate>Wed, 26 Oct 2016 22:48:56 +0800</pubDate><description><![CDATA[一、创建plist文件在学习《Cocos2d-x 3.x游戏开发之旅》时，点击完屏幕以创建很多炮塔的(x, y)坐标，使用ValueMap把炮塔坐标写入plist文件，保存当前玩家创建的炮塔，以便再次进入游戏时还原之前的炮塔（根据坐标）。下面是创建plist文件的函数：void TowerPosEditorScene::outputPosToPlistFile()
{
    String* s_p]]></description><category></category></item><item><title><![CDATA[第5章 散列——分离链接法]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52849710</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52849710</guid><author>iFuMI</author><pubDate>Tue, 18 Oct 2016 15:58:23 +0800</pubDate><description><![CDATA[#include <iostream>
using namespace std;typedef int ElementType;struct ListNode
{
    ElementType elem;
    ListNode* next;
};struct HashTable
{
    int tableSize;
    ListNode* *lists;
};// 散列函数
unsig]]></description><category></category></item><item><title><![CDATA[队列]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52814143</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52814143</guid><author>iFuMI</author><pubDate>Fri, 14 Oct 2016 11:02:30 +0800</pubDate><description><![CDATA[一、队列初探队列（queue）是只允许在一端进行插入操作，在另一端进行删除操作。其中，插入元素（即入队列）的一端为队尾（rear），删除元素的一端为队头（front）。与栈不同的是，队列是一种先进先出的线性表，简称FIFO。假设队列q = (a1, a2, …, an)，那么a1为队头，an为队尾。如下图所示： 
二、顺序队列的不足假设我们有队列q = (a1, a2, …, an)，顺序队列需要建]]></description><category></category></item><item><title><![CDATA[3.3 Data Member的存储]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52770543</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52770543</guid><author>iFuMI</author><pubDate>Sun, 09 Oct 2016 21:10:11 +0800</pubDate><description><![CDATA[一、Static Data MembersStatic data members，处于class之外，存放在程序的data segment之中。每一个static data member只有一个实例，并被视为一个global变量（但是只在class生命范围内可见）。static data member经常通过类名和“作用域运算符”调用静态数据成员，也可以通过 class object（虽然经常不需要]]></description><category></category></item><item><title><![CDATA[3.4 “继承”与Data Member]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52768690</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52768690</guid><author>iFuMI</author><pubDate>Sun, 09 Oct 2016 17:17:38 +0800</pubDate><description><![CDATA[一、基本Class模型在C++继承模型中，一个derived class object所表现出来的东西，是其自己的members加上其base class(es) members的总和。置于derived class members和base class(es) members的排列顺序，则未在C++ Standard中强制指定：理论上编译器可以自由安排之。在大部分编译器的上头，base class]]></description><category></category></item><item><title><![CDATA[3.2 Data Member的布局]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52766987</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52766987</guid><author>iFuMI</author><pubDate>Sun, 09 Oct 2016 15:04:11 +0800</pubDate><description><![CDATA[一、预热在讨论Data Member布局之前，先看比较常见的笔试题目： 
1、 空class    class X{};
sizeof(X) : 1。空的class中没有任何data member，大小不应该是0吗？大小之所以为1，是因为编译器安插进去一个char，所以空class实际上隐藏1字节的大小。 
2、没有virtual 成员函数的classclass Point3d
{
public:]]></description><category></category></item><item><title><![CDATA[2.1 Default Constructor的构造操作]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52764729</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52764729</guid><author>iFuMI</author><pubDate>Sun, 09 Oct 2016 11:09:08 +0800</pubDate><description><![CDATA[编译器何时会自动产生一个default constructor？编译器自动合成的default constructor将会初始化nonstatic member data？程序设计者什么时候需要显式地提供default constructor？程序设计者显式地提供了default constructor，编译器就不再做什么了吗？那么，到底Default Constructor的构造操作是如何运转的呢]]></description><category></category></item><item><title><![CDATA[2.3 程序转化语意学]]></title><link>https://blog.youkuaiyun.com/iFuMI/article/details/52760248</link><guid>https://blog.youkuaiyun.com/iFuMI/article/details/52760248</guid><author>iFuMI</author><pubDate>Sat, 08 Oct 2016 20:17:10 +0800</pubDate><description><![CDATA[一、显式的初始化操作X x0;void foo_bar()
{
    X x1(x0);
    X x2 = x0;
    X x3 = X(x0);
}
二、参数的初始化把一个class object当做参数传给一个函数（或者作为一个函数的返回值），相当于以下操作：X  xx = arg;
其中，xx代表形式参数或返回值，arg为真正的参数值（即实参）。下面这样的调用方式：// 已知foo函]]></description><category></category></item></channel></rss>