<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KFLING的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/KFLING</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KFLING]]></copyright><item><title><![CDATA[MFC拖拽]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/81124046</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/81124046</guid><author>KFLING</author><pubDate>Thu, 19 Jul 2018 22:44:12 +0800</pubDate><description><![CDATA[ 在日常的程序中，为了操作的方便，经常需要使用鼠标拖拽的方式把文件管理器中的文件拖拽到我们自己写的程序中，以下就简单介绍以下实现该操作的方法。

       其实文件管理器的拖拽方式实现起来很简单，主要通过几个函数来实现，消息WM_DROPFILES的响应函数OnDropFiles，还有三个API函数：DragQueryFile、DragQueryPoint和DragFinish。 在启动拖拽动...]]></description><category></category></item><item><title><![CDATA[c++类模板用法讲解]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80740453</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80740453</guid><author>KFLING</author><pubDate>Tue, 19 Jun 2018 23:56:15 +0800</pubDate><description><![CDATA[在编写类模板的程序时，把类模板的成员函数的声明和实现分别写在了头文件和源文件中，导致了出现编译出错的现象，现弄清楚了原因，特写此篇，供大家参考学习。c++中每一个对象所占用的空间大小，是在编译的时候就确定的，在模板类没有真正的被使用之前，编译器是无法知道模板类中使用模板类型的对象所占用的空间大小的。只有模板被真正使用的时候，编译器才知道，模板套用的是什么类型，应该分配多少空间。这也是模板类称之为模...]]></description><category></category></item><item><title><![CDATA[二叉树的概念讲解]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80672501</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80672501</guid><author>KFLING</author><pubDate>Tue, 12 Jun 2018 23:25:50 +0800</pubDate><description><![CDATA[本篇就大概介绍下二叉树的基本知识。1.二叉树的定义二叉树是n(n&amp;gt;=0)个结点的有限集合，该集合或者为空集（称为空二叉树），或者由一个根结点和两棵互不相交的分别称为根结点的左子树和右子树的二叉树组成。2.二叉树的特点①。每个结点最多有两棵子树。②。左子树和右子树是有顺序的。③。即使树中某结点只有一颗子树，也要区分它是左子树还是右子树。3.特殊的二叉树斜树：每一层都只有一个结点，节点的个数与二...]]></description><category></category></item><item><title><![CDATA[二叉树的遍历c++代码实现]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80672073</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80672073</guid><author>KFLING</author><pubDate>Tue, 12 Jun 2018 22:55:25 +0800</pubDate><description><![CDATA[二叉树的遍历是指从根结点出发，按照某种次序依次访问二叉树中所有结点，使得每个结点被访问一次且仅被访问一次。二叉树的遍历方式常用的有四种：前序遍历、中序遍历、后序遍历和层序遍历。二叉树结点的定义代码如下：//Definition for binary tree
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right...]]></description><category></category></item><item><title><![CDATA[C++中string类型求长度用法以及c_str用法总结]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80614807</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80614807</guid><author>KFLING</author><pubDate>Thu, 07 Jun 2018 21:14:34 +0800</pubDate><description><![CDATA[1.C++中求string类型的长度有三种方式。在c++中，string代表一个类，有它自己的构造函数和成员函数。有两个成员函数都可以求string类型的长度。①  length()成员函数。②  size()成员函数。③  可以借助strlen函数，但是前提是需要将string类型的字符串转换为char*类型。strlen(char*)函数求的是字符串的实际长度，它求得方法是从开始到遇到第一个'...]]></description><category></category></item><item><title><![CDATA[设计模式-----单例(Singleton)模式学习]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80517792</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80517792</guid><author>KFLING</author><pubDate>Wed, 30 May 2018 23:49:16 +0800</pubDate><description><![CDATA[概念：单例模式，就是保证一个类仅有一个实例，并提供一个访问它的全局访问点。保证一个类仅有一个实例最好的方法就是：让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建，并且它可以提供一个访问该实例的方法。对于所有类而言，都有构造方法，不编码则系统默认生成空的构造方法，若有显示定义的构造方法，默认的构造方法就会失效。如果想要让类智能实例化一次，那么可以把类的构造方法写成是private，...]]></description><category></category></item><item><title><![CDATA[定义一个dll库的头文件，可被c++引用，也可以被c引用。]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80503808</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80503808</guid><author>KFLING</author><pubDate>Tue, 29 May 2018 23:53:42 +0800</pubDate><description><![CDATA[定义一个dll库的头文件，可被c++引用，也可以被c引用。（使用_declspec(dllexport),_declspec(dllimport),定义windows下的库）。]]></description><category></category></item><item><title><![CDATA[笔试题2：实现把字符串中的每个空格进行替换]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80490477</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80490477</guid><author>KFLING</author><pubDate>Mon, 28 May 2018 23:54:04 +0800</pubDate><description><![CDATA[题目：实现一个函数，把字符串中的每个空格替换成“%20”。例如输入“We are happy”,则输出&quot;We%20are%20happy&quot;。做字符串中空格的替换就要统计出字符串中空格出现的次数，因此遍历字符串，统计字符串的长度以及空格出现的次数。然后计算下替换之后新字符串的长度。在给字符数组预分配内存大小时，一定要分配的大小比替换之后新字符串的长度要长。然后在原字符串基础上去修改字符串，为减少时间...]]></description><category></category></item><item><title><![CDATA[MySQL数据库之-----索引操作]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80473746</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80473746</guid><author>KFLING</author><pubDate>Sun, 27 May 2018 23:50:44 +0800</pubDate><description><![CDATA[数据库对象索引与书的目录类似，主要是为了提高从表中检索数据的速度。由于数据存储在数据库表中，所以索引是创建在数据库表对象上的，由表中的一个字段或多个字段生成的键组成，这些键存储在数据结构中，通过MySQL可以快速有效地查找与键值相关联的字段。根据索引的存储类型，可以将索引分为B型树索引和哈希索引。InnoDB和MyISAM存储引擎支持BTREE类型索引，MEMORY存储引擎支持HASH类型索引。M...]]></description><category></category></item><item><title><![CDATA[MYSQL数据库之----表的操作详解]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80464677</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80464677</guid><author>KFLING</author><pubDate>Sat, 26 May 2018 23:03:45 +0800</pubDate><description><![CDATA[此篇主要介绍数据库中表的操作。数据库是表的容器，表，必须输入某个数据库，因此在创建表之前要指明数据库。1.表的创建列定义： 列名   列的数据类型   [列的属性（约束）]创建表的SQL命令：create table 表名(列结构) [表选项];查看表的定义，可以用DESCRIBE命令。也可以简写为DESC命令。查看表的详细定义，可以使用 SHOW CREATE TABLE语句。2.删除表的语句S...]]></description><category></category></item><item><title><![CDATA[MYSQL数据库之存储引擎]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80443822</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80443822</guid><author>KFLING</author><pubDate>Thu, 24 May 2018 22:44:38 +0800</pubDate><description><![CDATA[与其他数据库软件不同，MYSQL数据库软件提供了一个名为存储引擎的概念。存储引擎是MYSQL数据库管理系统的一个重要特征，在具体开发时，为提高MYSQL数据库管理系统的使用效率和灵活性，可以根据实际需要来选择存储引擎。存储引擎指定了表的类型，即如何存储和索引数据、是否支持事务等，同时存储引擎也决定了表在计算机中的存储方式。1、用户在选择存储引擎之前，首先需要确定数据库管理系统支持哪些存储引擎。可通...]]></description><category></category></item><item><title><![CDATA[数据库之------管理用户]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80418115</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80418115</guid><author>KFLING</author><pubDate>Wed, 23 May 2018 12:22:40 +0800</pubDate><description><![CDATA[MYSQL 用户账号和信息存储在名为mysql的MYSQL数据库中，一般不需要直接访问Mysql数据库和表，但在需要获得所有用户账号列表时，需要直接访问。可以看到在MYSQL数据库中存在一个名为mysql的数据库。在mysql数据库中有一个名为user的表，它包含所有用户账号。然后访问数据库操作，user表有一个名为user的列，它存储用户登录名。可以看到有三个用户登录名。创建用户账号：命令：cr...]]></description><category></category></item><item><title><![CDATA[数据库学习一：创建数据库 、创建表、向表中插入数据与检索数据]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80387120</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80387120</guid><author>KFLING</author><pubDate>Mon, 21 May 2018 00:00:37 +0800</pubDate><description><![CDATA[1.显示数据库信息：通过show database命令。2.为了获得一个数据库内的表的列表，使用show tables;3.创建数据库 ，使用create database 数据库名;再使用show命令可以看出系统中多了一个自己创建的数据库名。4.创建表。数据库是表的容器，表，必须输入某个数据库。因而在创建表之前要指定数据库。1.可以通过语法指明表所属的数据库。库.表语法。如果任何的标识符出现了特...]]></description><category></category></item><item><title><![CDATA[MYSQL数据库简介]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80386914</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80386914</guid><author>KFLING</author><pubDate>Sun, 20 May 2018 23:47:13 +0800</pubDate><description><![CDATA[数据库系统（Database system）= 数据库管理系统（DBMS,Database Management System）+数据库（Database）数据库管理系统（DBMS）可分为两类：一类为基于共享文件系统的DBMS,另一类为基于客户机-服务器的DBMS。前者包括Microsoft Access 和FileMaker等，用于桌面用途，通常不用于高端或更关键的应用。后者包括MYSQL、Or...]]></description><category></category></item><item><title><![CDATA[c++之动态内存分配]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80246933</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80246933</guid><author>KFLING</author><pubDate>Tue, 08 May 2018 22:49:19 +0800</pubDate><description><![CDATA[1.先拿指针为例，搞明白指针赋值的含义。给指针赋值就相当于是改变指针的地址，就是改变指针所指向的内存。#include &amp;lt;iostream&amp;gt;
using namespace std;

int main()
{
	int b1 = 0, b2 = 4;
	int *a1 = &amp;amp;b1;
	int *a2 = &amp;amp;b2;
	cout &amp;lt;&amp;lt; &quot;赋值前a1和a2的地址...]]></description><category></category></item><item><title><![CDATA[求字符串的全排列的递归实现（对字符串中有相同字符也适用）]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80213151</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80213151</guid><author>KFLING</author><pubDate>Sun, 06 May 2018 12:08:22 +0800</pubDate><description><![CDATA[题目：输入一个字符串，打印出该字符串中字符的所有排列。接着上一篇，但此代码对字符串中有相同字符也同样能正确输出结果。例如：输入字符串abbc,则打印出由字符a、b、c所能排列出来的所有字符串abbc、abcb、acbb、babc、bacb、bbac、bbca、bcba、bcab、cbba、cbab、cabb。相比于字符串中所有字符都不相同的情况，这时只需要增加一个函数，在对字符串中两个字符交换之前...]]></description><category></category></item><item><title><![CDATA[求字符串的所有组合数（分冶法+递归）c++代码实现]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80212925</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80212925</guid><author>KFLING</author><pubDate>Sun, 06 May 2018 11:55:25 +0800</pubDate><description><![CDATA[题目：输入一个字符串，求字符的所有组合。例如输入字符串abc，则它的组合有a、b、c、ab、ac、bc、abc。当交换字符串中的两个字符时，虽然能得到两个不同的排列，但却是同一组合。下面假设字符串中所有字符都不相同。如果输入n个字符，则这n个字符能构成长度为1的组合、长度为2的组合、。。长度为n的组合。在求n个字符的长为m(1&amp;lt;=m&amp;lt;=n)的组合的时候，采用分冶法的思想，将大问题分解成...]]></description><category></category></item><item><title><![CDATA[字符串的全排列c++代码实现]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80201529</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80201529</guid><author>KFLING</author><pubDate>Fri, 04 May 2018 23:22:20 +0800</pubDate><description><![CDATA[面试题28：字符串的排列题目：输入一个字符串，打印出该字符串中字符的所有排列。（假设字符串中所有字符都不相同）例如：输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。将大问题分解为小问题，本题思路是：把字符串看成有两部分组成：第一部分是它的第一个字符，第二部分是后面的所有字符。求整个字符串的排列，可以分成两步：首先求所有可能出现在第一...]]></description><category></category></item><item><title><![CDATA[std:;remove_if用法讲解]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80187847</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80187847</guid><author>KFLING</author><pubDate>Thu, 03 May 2018 22:13:43 +0800</pubDate><description><![CDATA[remove_if(begin,end,op);  remove_if的参数是迭代器，前两个参数表示迭代的起始位置和这个起始位置所对应的停止位置。最后一个参数：传入一个回调函数，如果回调函数返回为真，则将当前所指向的参数移到尾部。返回值是被移动区域的首个元素。remove_if在头文件algorithm中，故要使用此函数，需添加#include &amp;lt;algorithm&amp;gt;由于remove_...]]></description><category></category></item><item><title><![CDATA[区分接口继承和实现继承]]></title><link>https://blog.youkuaiyun.com/KFLING/article/details/80106228</link><guid>https://blog.youkuaiyun.com/KFLING/article/details/80106228</guid><author>KFLING</author><pubDate>Fri, 27 Apr 2018 12:19:07 +0800</pubDate><description><![CDATA[公有继承public的概念，可以分为两部分：函数接口继承和函数实现继承。在public继承下，派生类总会继承基类的接口。也就是成员函数的接口总是会被继承。pure virtual纯虚函数只具体指定接口继承。impure virtual(非纯)函数具体指定接口继承及缺省实现继承。non-virtual(普通)函数具体指定接口继承及强制性实现继承。例子1：一考虑一个展现绘图程序中各种几何形状的clas...]]></description><category></category></item></channel></rss>