[转载]C++中std::allocator的使用
标准库中包含一个名为allocator的类,允许我们将分配和初始化分离。使用allocator通常会提供更好的性能和更灵活的内存管理能力。
new有一些灵活性上的局限,其中一方面表现在它将内存分配和对象构造组合在了一起。类似的,delete将对象析构和内存释放组合在了一起。我们分配单个 ...
[转载]Mysql主从同步实战
前言Mysql主从同步实战,知其然,知其所以然也是很重要的,不然你永远无法进阶,但是,俗话说学会走前要学会爬,在大多数的中小型公司中,业务需要用到某一项技术,是没有太多的时间给你慢慢研究其原理的,大多是囫囵吞枣的看一下,找点攻略,快速搭建起来,先干活再说,至于后期的扩展和优化那就是慢慢来的事情, ...
[转载]mysql主从同步原理
1、什么是mysql主从同步?当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。
2、主从同步有什么好处?
水平扩展数据库的负载能力。
容错,高可用。Failover(失败切换)/High Availability
数据备份。
3、主从同步的原理是什么?首先 ...
[转载]为什么C++11引入了std::ref?
C++本身有引用(&),为什么C++11又引入了std::ref?
主要是考虑函数式编程(如std::bind)在使用时,是对参数直接拷贝,而不是引用。如下例子:
12345678910111213141516171819202122#include <functional ...
[转载]C++移动语义及拷贝优化
C++移动语义及拷贝优化我们知道在传统C++程序中,如果函数的返回值是一个对象的话,可能需要对函数中的局部对象进行拷贝。如果该对象很大的话,则程序的效率会降低。
在C++ 11以后,出现的移动语义(Move Semantic)及拷贝优化(Copy Elision)都是解决这个问题的方法。这篇博文 ...
[转载]C++ 中的 mutable 关键字
此篇介绍 C++ 中的 mutable 关键字。
类中的 mutablemutable 从字面意思上来说,是「可变的」之意。
若是要「顾名思义」,那么这个关键词的含义就有些意思了。显然,「可变的」只能用来形容变量,而不可能是「函数」或者「类」本身。然而,既然是「变量」,那么它本来就是可变的,也没 ...
[转载]C++构造函数和析构函数的调用顺序
C++如果没有分配资源那么就不一定需要析构函数,否则就需要释放资源,如下:
12345678910class Vector {public:Vector(int s) :elem{new double[s]}, sz{s} { ...
[转载]图说C++对象模型:对象内存布局详解
0.前言文章较长,而且内容相对来说比较枯燥,希望对C++对象的内存布局、虚表指针、虚基类指针等有深入了解的朋友可以慢慢看。本文的结论都在VS2013上得到验证。不同的编译器在内存布局的细节上可能有所不同。文章如果有解释不清、解释不通或疏漏的地方,恳请指出。
1.何为C++对象模型?引用《深度探索 ...
[转载]聊聊IO多路复用之select、poll、epoll详解
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:
当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。
当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。
如果一个TCP服务器既要处理监听 ...
[转载]如何深刻理解Reactor和Proactor?
1、标准定义两种I/O多路复用模式:Reactor和Proactor
一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员 ...