<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Z685455的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Z685455</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Z685455]]></copyright><item><title><![CDATA[C++后台开发面试总结（摘抄自牛客网）]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583450</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583450</guid><author>Z685455</author><pubDate>Wed, 21 Aug 2019 11:03:00 +0800</pubDate><description><![CDATA[C和C++语言基础


extern关键字作用


extern声明变量在在外部定义？
extern修饰函数？
extern C的作用？用法？



static关键字作用


static修饰局部变量？
static全局变量？(限定变量在一个编译单元内，一个编译单元就是指一个cpp和它包含的头文件，这个回答可以结合编译需要经历的几个过程来答)
st...]]></description><category></category></item><item><title><![CDATA[C++ 实现康拓展开（leetcode 60）]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583449</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583449</guid><author>Z685455</author><pubDate>Tue, 23 Jul 2019 20:18:00 +0800</pubDate><description><![CDATA[定义：
康托展开是一个全排列到一个自然数的双射，常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的名次，因此是可逆的。
原理介绍
   X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0!


A[i]指的是位于位置i后面的数小于A[i]值的个数,后面乘的就是后面还有多少个数的阶乘...]]></description><category></category></item><item><title><![CDATA[C++中基类的析构函数不是虚函数，会带来什么问题!!]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583447</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583447</guid><author>Z685455</author><pubDate>Tue, 09 Jul 2019 00:04:00 +0800</pubDate><description><![CDATA[如下例：

#include &lt;iostream&gt;
using namespace std;

class Father
{
public:
    Father(){cout&lt;&lt;"contructor Father!"&lt;&lt;endl;};
    ~Father(){cout&lt;&lt;"destructor Father!"&l...]]></description><category></category></item><item><title><![CDATA[【C++】指针参数是如何传递内存的]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583448</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583448</guid><author>Z685455</author><pubDate>Sat, 06 Jul 2019 11:14:00 +0800</pubDate><description><![CDATA[参数策略
如果函数的参数是一个指针，不要指望用该指针去动态申请内存。如下：


void GetMemory(char *p, int num)
{
    p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
    char *str = NULL;
    GetMemory(str, 100)...]]></description><category></category></item><item><title><![CDATA[floyd算法（C++解决leetcode 399）]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583445</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583445</guid><author>Z685455</author><pubDate>Wed, 19 Jun 2019 20:13:00 +0800</pubDate><description><![CDATA[原理：最短路径问题：推导公式


题目：
给出方程式A / B = k, 其中A 和B 均为代表字符串的变量，k 是一个浮点型数字。根据已知方程式求解问题，并返回计算结果。如果结果不存在，则返回-1.0。
示例 :给定a / b = 2.0, b / c = 3.0问题: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x...]]></description><category></category></item><item><title><![CDATA[C++使用socket实现进程通信]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583446</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583446</guid><author>Z685455</author><pubDate>Wed, 12 Jun 2019 20:51:00 +0800</pubDate><description><![CDATA[网络编程：我们都应该知道服务端和客户端C/S模式，下面我们遵循一个网络编程的规律：
服务端：socket ——&gt; bind ——&gt; listen ——&gt; accept
客户端：socket ——&gt; listen
下面就是代码部分，遵循了上面的规律，大家不懂的函数可以百度查看含义
服务端代码：

// server.cpp : 此文件包含 "main" ...]]></description><category></category></item><item><title><![CDATA[C++智能指针]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583443</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583443</guid><author>Z685455</author><pubDate>Tue, 11 Jun 2019 18:56:00 +0800</pubDate><description><![CDATA[1.智能指针的作用
C++程序设计中使用堆内存是非常频繁的操作，堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率，但是整体来说堆内存的管理是麻烦的，C++11中引入了智能指针的概念，方便管理堆内存。使用普通指针，容易造成堆内存泄露（忘记释放），二次释放，程序发生异常时内存泄露等问题等，使用智能指针能更好的管理堆内存。
理解智能指针需要从下面...]]></description><category></category></item><item><title><![CDATA[C++中lambda函数]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583444</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583444</guid><author>Z685455</author><pubDate>Mon, 27 May 2019 22:33:00 +0800</pubDate><description><![CDATA[转载自：https://www.cnblogs.com/DswCnblog/p/5629165.html
C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式，可以方便的定义和创建匿名函数。对于C++这门语言来说来说，“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥，但很多高级语言在很早以前就已经提供了Lambda表达式的功能，如C#，Python等。今...]]></description><category></category></item><item><title><![CDATA[负载均衡—几种常见算法]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583442</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583442</guid><author>Z685455</author><pubDate>Wed, 22 May 2019 16:53:00 +0800</pubDate><description><![CDATA[什么是负载均衡？
当一台服务器的性能达到极限时，我们可以使用服务器集群来提高网站的整体性能。那么，在服务器集群中，需要有一台服务器充当调度者的角色，用户的所有请求都会首先由它接收，调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中，调度者如何合理分配任务，保证所有后端服务器都将性能充分发挥，从而保持服务器集群的整体性能最优，这就是负载均衡问题。
第一...]]></description><category></category></item><item><title><![CDATA[名字服务]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583441</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583441</guid><author>Z685455</author><pubDate>Wed, 22 May 2019 09:44:00 +0800</pubDate><description><![CDATA[名字服务就是服务间“你寻我，我寻你”的爱情游戏，因为它总是为彼此找到最佳"伴侣"，不是么？

在之前的文章中多次提到名字服务这个概念，也很多人在问这是个什么东西？为什么我老是提起它？首先因为太重要了，直接决定着运维自动化平台的水平、简单与复杂；其次我做这么多年运维，对名字服务有着很深的情节（可能觉得它很酷），终于这次在自己负责的业务里面落地，也有了实践的经验，避免来虚的；最后，它能...]]></description><category></category></item><item><title><![CDATA[C++中普通函数，虚函数，纯虚函数的区别]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583440</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583440</guid><author>Z685455</author><pubDate>Mon, 20 May 2019 17:13:00 +0800</pubDate><description><![CDATA[1.虚函数(impure virtual)
　　C++的虚函数主要作用是“运行时多态”，父类中提供虚函数的实现，为子类提供默认的函数实现。
　　子类可以重写父类的虚函数实现子类的特殊化。
　　如下就是一个父类中的虚函数：


class A
{
public:
    virtual void out2(string s)
    {
        cout&lt...]]></description><category></category></item><item><title><![CDATA[C++中的unique_lock函数及其参数案例详解]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583439</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583439</guid><author>Z685455</author><pubDate>Fri, 17 May 2019 12:27:00 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
using namespace std;

#include &lt;list&gt;
#include &lt;thread&gt;
#include &lt;mutex&gt;
class A
{
public:
	std::unique_lock&lt;std::mutex&gt; rtn_unique_lo...]]></description><category></category></item><item><title><![CDATA[C++的函数适配器]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583438</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583438</guid><author>Z685455</author><pubDate>Sat, 11 May 2019 11:05:00 +0800</pubDate><description><![CDATA[函数适配器分为四大类：绑定适配器，组合适配器，指针函数适配器，成员函数适配器。
下例中包含了常用的四个：

　　bind1st(op, value); 绑定到二元函数对象的第一个参数
　　bind2nd(op, value);绑定到二元函数对象的第二个参数
　　not1(op); 翻转一元预定义函数对象的真值
　　not2(op);翻转二元预定义函数对象的真值


#i...]]></description><category></category></item><item><title><![CDATA[C++ STL中map的四种插入形式]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583437</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583437</guid><author>Z685455</author><pubDate>Thu, 09 May 2019 15:46:00 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
using namespace std;

#include "map"
#include "string"

void testInsert(map&lt;int, string&gt; &amp;m)
{
	//first insert method
	m.insert(pair&lt;int, string&...]]></description><category></category></item><item><title><![CDATA[C++指针和引用的区别（面试关键题目）]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583435</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583435</guid><author>Z685455</author><pubDate>Wed, 08 May 2019 09:52:00 +0800</pubDate><description><![CDATA[C++中引用和指针的区别？

参考答案：

(1)当引用被创建时，它必须被初始化。而指针则可以在任何时候被初始化。

(2)一旦一个引用被初始化为指向一个对象，它就不能被改变为对另一个对象的引用。而指针则可以在任何时候指向另一个对象。

(3)不可能有NULL引用。必须确保引用是和一块合法的存储单元关联。

进一步解析：

指针和引用都是C++中的...]]></description><category></category></item><item><title><![CDATA[利用案例简要阐述C++的强制类型转换]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583436</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583436</guid><author>Z685455</author><pubDate>Sat, 04 May 2019 16:05:00 +0800</pubDate><description><![CDATA[C语言的风格： type b = (type) a;
C++语言风格：type b = 转换形式 &lt;type&gt; (a);
四种形式的介绍：

static_cast 静态类型转化（让C++编译器在编译时进行类型检查）
reinterpreter_cast重新解释类型
dynamic_cast命名上理解是动态类型转换，如子类和父类之间的多态类型转换
const_c...]]></description><category></category></item><item><title><![CDATA[C++模板函数中的友元函数的使用]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583434</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583434</guid><author>Z685455</author><pubDate>Sun, 28 Apr 2019 20:04:00 +0800</pubDate><description><![CDATA[友元函数注意点：

　声明的位置和public，private没有关系；
　函数modifyA()函数是类A的好朋友：friend void modifyA(A *pA, int _a);
　在类的外部重写函数，定义函数的内容；

我们在下面的例子中将重写复数的加法和输出（其中涉及到运算符重载）：
运算符重载的正规写法：运算符重载的正规写法：重载&lt;&lt; &gt;...]]></description><category></category></item><item><title><![CDATA[C/C++函数指针详解]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583433</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583433</guid><author>Z685455</author><pubDate>Thu, 25 Apr 2019 09:45:00 +0800</pubDate><description><![CDATA[一 函数指针介绍
函数指针指向某种特定类型，函数的类型由其参数及返回类型共同决定，与函数名无关。举例如下：

intadd(intnLeft,intnRight);//函数定义

该函数类型为int(int,int),要想声明一个指向该类函数的指针，只需用指针替换函数名即可：

int(*pf)(int,int);//未初始化

则pf可指向i...]]></description><category></category></item><item><title><![CDATA[C++中int和long的区别（leetcode 377 C++）]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583432</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583432</guid><author>Z685455</author><pubDate>Mon, 22 Apr 2019 10:13:00 +0800</pubDate><description><![CDATA[首先需要明白以下区别，我们才能更好地用C++做对leetcode 中的377题目。
int和long区别如下：
占内存长度不同和取值范围不同。
32位系统：long是4字节32位，int是4字节32位。
64位系统：long是8字节64位，int是4字节32位。
注意事项：
1、long类型的范围是：-9223372036854775808~92233720368547758...]]></description><category></category></item><item><title><![CDATA[C++操作符重载]]></title><link>https://blog.youkuaiyun.com/Z685455/article/details/101583431</link><guid>https://blog.youkuaiyun.com/Z685455/article/details/101583431</guid><author>Z685455</author><pubDate>Fri, 19 Apr 2019 12:45:00 +0800</pubDate><description><![CDATA[例子一：重写二元操作符+（复数对象的+操作符与普通整型变量的+操作不一样，所以需要重写+）
实现代码一：通过友元函数来实现

//在vc 6.0中有可能不能通过，换个编译器就好了 
#include &lt;iostream&gt;
using namespace std;

class Complex //复数
{
	friend Complex &amp;opera...]]></description><category></category></item></channel></rss>