<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_44985337的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44985337</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44985337]]></copyright><item><title><![CDATA[unsigned int 和 int]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/116546507</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/116546507</guid><author>qq_44985337</author><pubDate>Sat, 08 May 2021 22:42:23 +0800</pubDate><description><![CDATA[通过程序也可以发现一个规律，int的取值范围是-32768~32767，把头尾连接起来形成一个环就可以了。
就如同int a；一样，int 也能被其它的修饰符修饰。除void类型外，基本数据类型之前都可以加各种类型修饰符，类型修饰符有如下四种:
1.signed----有符号，可修饰char、int。Int是默认有符号的。
2.unsigned-----无符号，修饰int 、char
3.long------长型，修饰int 、double
4.short------短型，修饰int
我们主要来看一下sig]]></description><category></category></item><item><title><![CDATA[java接口与 @override 的理解]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/116531948</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/116531948</guid><author>qq_44985337</author><pubDate>Sat, 08 May 2021 16:16:12 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/qq_19782019/article/details/80259836


接口？
接口概念
官方解释：Java接口是一系列方法的声明，是一些方法特征的集合，一个接口只有方法的特征没有方法的实现，因此这些方法可以在不同的地方被不同的类实现，而这些实现可以具有不同的行为（功能）。
我的解释：接口可以理解为一种特殊的类，里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段，但是接口在实际中更多的作用是制定标准的。或者我们可]]></description><category></category></item><item><title><![CDATA[webServer中遇到单继承和接口问题！]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/116527799</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/116527799</guid><author>qq_44985337</author><pubDate>Sat, 08 May 2021 14:53:20 +0800</pubDate><description><![CDATA[创建线程类，遇到单继承，和接口 去创建一个类！
什么是单继承，什么是接口！查阅文章 转载文章！原文链接：https://blog.youkuaiyun.com/fengzijinliang/article/details/51439368
首先，类的多继承有哪些缺点那：

第一，如果一个类继承多个父类，如果父类中的方法名如果相同，那么就会产生歧义。
第二，如果父类中的方法同名，子类中没有覆盖，同样会产生上面的错误。
所以，java中就没有设计类的多继承。
但是接口就设计成多继承，是因为接口可以避免上述问题：
首先，接.]]></description><category></category></item><item><title><![CDATA[.和-＞的区别  ，在C++中 访问函数的区别]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/116257137</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/116257137</guid><author>qq_44985337</author><pubDate>Thu, 29 Apr 2021 08:41:27 +0800</pubDate><description><![CDATA[先声明一个结构体
活着一个类
struct student{
int age;
char meger;
string Name;
}
class student {
public
int age;
char meger;
string name;
}
.和-&gt;的区别；
先声明一个结构体或者类
声明结构体类型：  struct student   St1;
声明指针类型： struct * student pSt1;他是在内存中某个块占了一个结构体类型
然后 再用一个指针变量pSt1去指向它；
那么这个]]></description><category></category></item><item><title><![CDATA[C++ memset 踩坑]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115918781</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115918781</guid><author>qq_44985337</author><pubDate>Tue, 20 Apr 2021 20:54:45 +0800</pubDate><description><![CDATA[文章目录
一、前言
二、函数作用
三、效率对比
四、误区总结
1、按字节设置
2、设置的值只有最低字节有效
3、堆内存不可直接 sizeof 取首地址
4、传参数组不可直接 sizeof 取首地址
一、前言
memset 作为对内存初始化的函数，还是有不少坑和误区的，今天就来对这个函数作一个总结。
二、函数作用
最简单的调用就是将一个数组清零，代码如下：
const int maxn = 1024;
int a[maxn];
memset(a, 0, sizeof(a));  // a[0]=a[1]=a[]]></description><category></category></item><item><title><![CDATA[根据中序，先序；或中序 后序  遍历 结果 可以推出原二叉树]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115857468</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115857468</guid><author>qq_44985337</author><pubDate>Tue, 20 Apr 2021 10:36:27 +0800</pubDate><description><![CDATA[先找到 根节点 在找左子树，右子树，再找左子树根节点，右子树根节点，
左子树，右子树 一直这样迭代，递归下去！

1、根据中序，先序；或中序 后序  遍历 结果 可以推出原二叉树


解答 遍历结果
先序：先访问 根节点  再先序访问 左子树  再放问右子树
A   B  C   D   E    F   G   H
中序： 先访问左子树   再访问 根节点  再访问 右子树
C  B  D    A     E    G   F   H
后续： 先后续遍历左子树，再后序遍历右子树，再后序遍历根节点
C .]]></description><category></category></item><item><title><![CDATA[c++递归斐波那契数列 ，递归三个要点]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115804306</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115804306</guid><author>qq_44985337</author><pubDate>Sun, 18 Apr 2021 00:05:40 +0800</pubDate><description><![CDATA[1、递归必须有明确终止条件，不能一直递归不输出；
2、函数处理规模一定是递减 【不然，也是无法终止 要向终止条件 递归前进】
3、这个转化必须是可解的【这个问题可以递归解决 才能用递归 ，不然不要用递归】
#include&lt;iostream&gt;
#include&lt;string&gt;
using namespace std;

//1 2 3 5 8  13 21 34
//前面两个的和是后一个数
//求斐波那契数列第N个数  f(n) = f(n-1)+f(n-2)

////递归必须得]]></description><category></category></item><item><title><![CDATA[视图的作用，如何创建一个视图create view]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115691146</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115691146</guid><author>qq_44985337</author><pubDate>Wed, 14 Apr 2021 10:02:25 +0800</pubDate><description><![CDATA[视图的作用：
1、视图隐藏了底层的表结构，简化了数据访问操作，客户端不再需要知道底层表的结构及其之间的关系。
2、视图提供了一个统一访问数据的接口。（即可以允许用户通过视图访问数据的安全机制，而不授予用户直接访问底层表的权限）
3、从而加强了安全性，使用户只能看到视图所显示的数据。
4、视图还可以被嵌套，一个视图中可以嵌套另一个视图。
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition`
//实例
CR]]></description><category></category></item><item><title><![CDATA[内存对齐，只要是跨平台的都要内存对齐]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115611684</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115611684</guid><author>qq_44985337</author><pubDate>Mon, 12 Apr 2021 10:38:18 +0800</pubDate><description><![CDATA[内存对齐
内存对齐，只要是跨平台的都要内存对齐，c\c++\java\python
其中c\c++是手动释放内存堆空间  动态开辟或new出来的。
jvm是java自动释放内存堆管理。但是有些错误的写法会照成内存泄漏，或内存溢出。
python 内存是由私有堆空间管理的，所有python对象和数据结构，都存在私有堆空间，程序员没有访问私有堆的权限，只有解释器才能操作。
python 万物皆为对象，对内存封装的很好，所以python的基本数据类型所用的内存，远大于存放纯数据类型所占用的内存，
c++内存管理
]]></description><category></category></item><item><title><![CDATA[c++中的左值和右值，变量的重复定义，特殊是可以的，全局变量，和局部变量可以重复定义，但是会被局部变量代替]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115479023</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115479023</guid><author>qq_44985337</author><pubDate>Wed, 07 Apr 2021 10:56:40 +0800</pubDate><description><![CDATA[基本上每个应用程序领域的程序员都有使用 C++。
C++ 通常用于编写设备驱动程序和其他要求实时性的直接操作硬件的软件。
C++ 广泛用于教学和研究。
任何一个使用苹果电脑或 Windows PC 机的用户都在间接地使用 C++，因为这些系统的主要用户接口是使用 C++ 编写的。
–C++ 中的左值（Lvalues）和右值（Rvalues）–
Lvalues Rvaluse

左值：指向内存位置的表达式称为左值表达式，左值可以出现在 赋值号 的左边和右边 int a,这个a就是既可以为左出现在赋值号 左边也]]></description><category></category></item><item><title><![CDATA[find查找运算 操作自定义类型的时候  看代码报错了 得重载==号操作符！没有匹配person类型的左操作符]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115446370</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115446370</guid><author>qq_44985337</author><pubDate>Mon, 05 Apr 2021 20:00:39 +0800</pubDate><description><![CDATA[1、find(begin(),end(),value);value是值。
看到底层就是一个迭代 ，循环。从begin（）到end()的一个循环，如果   *it==value   就返回it 那么 我们就是只需要，重载 这个类 ，vector这个person 类中的符号 = = 符号，不需要返回值，
bool operator= =( const person &amp;p ){
if(this-&gt;name = p-&gt;name&amp;&amp;this-&gt;age = p-&gt;age ]]></description><category></category></item><item><title><![CDATA[内置函数对象 头文件：include＜function＞  1、加法 2、比大小3、逻辑运算]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115444052</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115444052</guid><author>qq_44985337</author><pubDate>Mon, 05 Apr 2021 16:37:26 +0800</pubDate><description><![CDATA[1、加减运算 函数对象
push (1,2)
2、逻辑运算 与或非
logic_not()
在vector中创建一个bool 类型的数组、
vector v;
3、比较运算  比大小
greater ()  大的返回真
less()小的返回真
下面展示一些 内联代码片。
// A code block
#include&lt;iostream&gt;

// An highlighted block
var foo = 'bar';
```#include&lt;iostream&gt;
using nam]]></description><category></category></item><item><title><![CDATA[LIST是不支持随机访问迭代器的  他是链表结构 ，，，2、仿函数3、set\map函数插入值 的返回类型，可以是返回队组类型判断是否插入成功]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115438240</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115438240</guid><author>qq_44985337</author><pubDate>Mon, 05 Apr 2021 14:33:50 +0800</pubDate><description><![CDATA[**就是 有值 也有地址 ，**有一个指向前面一个值得地，和一个指向后面 一个值的地址。这样就没法随机访问了。。但是有些vector  他只有一个地址，就用一个地址，后面都是联系的 就可以随机访问了。 这是关键。就可以用sort(begin(),end()).
但是有些无法支持,只能 用内置函数，list.sort()。默认排序规制都是从小到大的。
但是可以传一个回调函数，这个函数返回值是bool类型，就可以传进去了，
bool  mycompare(int va1 ,int va2){
return  v]]></description><category></category></item><item><title><![CDATA[set和map容器 的排序 自定义函数]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115391461</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115391461</guid><author>qq_44985337</author><pubDate>Fri, 02 Apr 2021 09:51:41 +0800</pubDate><description><![CDATA[map 容器
利用仿函数可以指定map容器的排序规则
对于自定义数据类型，map必须要指定排序规则,同set容器
map&lt;int,int,compare&gt; m;
m.insert(make_pair(1,2));
// An highlighted block
class MyCompare 
{ public: bool operator()(int v1, int v2) {
 return v1 &gt; v2; } 
};
void test01() {
//默认从小到大排序 
//利用]]></description><category></category></item><item><title><![CDATA[C++的编程思想  ： 1、面向对象思想 ：三大特征：封装 继承 多态；2、泛型思想]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/115142302</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/115142302</guid><author>qq_44985337</author><pubDate>Tue, 23 Mar 2021 20:36:13 +0800</pubDate><description><![CDATA[面向对象三大特性：：
封装：把一些属性和行为 类似的东西 抽象出来，作为一个整体，成为一个类。 很多相似的类型 物与类聚 。叫做封装、
子类 来继承父类：把父类的属性和行为 继承下来，不用重复写
这也起到一个复用性的提升。
多态，{静态多态“函数的重载，操作符的重写”、动态多态“父类指针，指向子类对象。
就是一个函数名称，可以有多个操作的接口，同样都是一个名称，由于我们对象不同，父类指针，指向子类对象，由于创建的子类对象不同 ，调用同一个接口产生不同的形态。这就是多态。
泛型编程：就是模板，模板将、函数和类]]></description><category></category></item><item><title><![CDATA[C++虚函数和虚函数表原理,多态中的重写！]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/114889224</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/114889224</guid><author>qq_44985337</author><pubDate>Tue, 16 Mar 2021 17:14:18 +0800</pubDate><description><![CDATA[虚函数的地址存放于虚函数表之中。运行期多态就是通过虚函数和虚函数表实现的。
类的对象内部会有指向类内部的虚表地址的指针。通过这个指针调用虚函数。
虚函数的调用会被编译器转换为对虚函数表的访问：
ptr-&gt;f();   //ptr代表this指针，f是虚函数
*(ptr-&gt;vptr[1])(ptr);
上述代码中，ptr代表一个this指针，ptr指向的vptr是类内部的虚表指针。这个虚表指针会被放在类的最前方（VS2017），1就是虚函数指针在虚函数表中的索引值。在这个索引值表示的虚表的槽中存放]]></description><category></category></item><item><title><![CDATA[做函数的形参 用常量引用的好处 就是可以避免开辟栈区地址，他传下来的就是实参的地址，也可以避免方法改变实参，这样和值传递差距就是避免栈区饱满]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/114681196</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/114681196</guid><author>qq_44985337</author><pubDate>Thu, 11 Mar 2021 21:57:53 +0800</pubDate><description><![CDATA[void showValue(const int&amp; v) {
//v += 10;
cout &lt;&lt; v &lt;&lt; endl;
}
int main() {
//int&amp; ref = 10;  引用本身需要一个合法的内存空间，因此这行错误
//加入const就可以了，编译器优化代码，int temp = 10; const int&amp; ref = temp;
const int&amp; ref = 10;

//ref = 100;  //加入const后不可以修改]]></description><category></category></item><item><title><![CDATA[C++中“非常量引用的初始值必须是左值”的处理方法 常量引用可以系统会创建值TEAMP且不可修改，引用就是指向这个临时值]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/114680193</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/114680193</guid><author>qq_44985337</author><pubDate>Thu, 11 Mar 2021 21:10:46 +0800</pubDate><description><![CDATA[原文：https://blog.youkuaiyun.com/hou09tian/article/details/80565343
1 左值和右值
在C++中，左值可以出现在赋值语句的左边和右边；右值只能出现在赋值语句的右边，不能出现在赋值语句的左边。变量是左值，常量是右值。
2 引用
引用（reference）为对象起了另外一个名字，引用类型引用（refers to）另外一种类型。通过在变量名前添加“&amp;”符号来定义。引用具体的使用方法请参考《C++的引用与重载函数》。
3 非常量引用的初始值必须是左值
3.1]]></description><category></category></item><item><title><![CDATA[这里指针指向new出来的堆区地址然后又arr代表的就是指针。]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/114601261</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/114601261</guid><author>qq_44985337</author><pubDate>Tue, 09 Mar 2021 21:53:22 +0800</pubDate><description><![CDATA[//堆区开辟数组
int main() {
int* arr = new int[10];

for (int i = 0; i &lt; 10; i++)
{
	arr[i] = i + 100;
}

for (int i = 0; i &lt; 10; i++)
{
	cout &lt;&lt; arr[i] &lt;&lt; endl;
}
//释放数组 delete 后加 []
delete[] arr;

system("pause");

return 0;

}
int arry[10];
]]></description><category></category></item><item><title><![CDATA[栈区和堆区的用法]]></title><link>https://blog.youkuaiyun.com/qq_44985337/article/details/114599863</link><guid>https://blog.youkuaiyun.com/qq_44985337/article/details/114599863</guid><author>qq_44985337</author><pubDate>Tue, 09 Mar 2021 20:43:52 +0800</pubDate><description><![CDATA[1 内存分区模型
C++程序在执行时，将内存大方向划分为4个区域
代码区：存放函数体的二进制代码，由操作系统进行管理的
全局区：存放全局变量和静态变量以及常量
栈区：由编译器自动分配释放, 存放函数的参数值,局部变量等
堆区：由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
我的理解是：main函数中有个指针P变量是主函数的局部变量，他是随主函数结束而自动释放的，而其他创建的函数变量是该函数执行完就消失的。老师第一次是在主函数中的变量指向创建函数栈区变量的地址，自然会释放。而第二次是指向创建堆区]]></description><category></category></item></channel></rss>