随笔分类 - C++
摘要:参考:https://cloud.tencent.com/developer/article/1473541 对于任何数字表示成二进制科学计数法以后,一定是1点几(尾数)乘以2的多少次方(指数)。对于小于零的负数来说,就是负1点几(尾数)乘以2的多少次方(指数)。所以要存这个数,需要存储三个部分:正
阅读全文
摘要:所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。这有点类似互斥对象对共享资源的访问的保护,但是原子操作更加接近底层,因而效率更
阅读全文
摘要:1. 作用 代理模式也称为委托模式。作用就是找一个对象来替我们访问某个对象。意图:为其他对象提供一种代理以控制对这个对象的访问。 为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。 抽象类视图 分类 虚拟代理:是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真
阅读全文
摘要:参考链接:https://www.cnblogs.com/sunchaothu/p/10389842.html 一、什么是单例 单例 Singleton 是设计模式的一种,其特点是只提供唯一一个类的实例,具有全局变量的特点,在任何位置都可以通过接口获取到那个唯一实例;具体运用场景如: 设备管理器,系
阅读全文
摘要:开闭原则(Open-Closed Principle,OCP) 一个软件实体如类、模块和函数应该对扩展开放, 对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实 现扩展细节。可以提高软件系统的可复用性及可维护性。开闭原则,是面向对象设计中最基础的设计原 则。它
阅读全文
摘要:参考:https://www.cnblogs.com/xiaolincoding/p/11524376.html 总结: (1)简单工厂模式 分为:工厂类、抽象产品类、具体产品类,所有的具体产品类的实例化都在工厂类中实现 缺点:扩展性非常差,新增产品的时候,需要去修改工厂类,违背了开闭法则。 (2)
阅读全文
摘要:下面说的这种方法不是通过swig,而是先将C++模块编译成动态链接库.so,再利用python模块ctypes进行调用; 1、编写C++程序 2、编写CMakeLists.txt 3、编译 经过编译后会得到对应的.so文件,然后再在python中调用 4、在python中使用ctypes进行调用
阅读全文
摘要:1、CMake 定义:CMake是一个跨平台编译工具,可以用来自动输出makefile文件; 用法:(1)想要自动生成makefile,还需要编写对应的CMakeLists.txt文件; (2)在CMakeLists.txt的同级目录下使用"cmake ."命令就能生成对用的makefile文件;
阅读全文
摘要:boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。 boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Itera
阅读全文
摘要:问题描述及代码参考:http://blog.csdn.net/wly_2014/article/details/51388263 代码部分: 结果如下:
阅读全文
摘要:问题描述参见:https://www.cnblogs.com/zyxStar/p/4591897.html 代码参考:http://blog.csdn.net/qq_28666193/article/details/53351482(原代码中有几处错误,我作了修改) 头文件部分: (1)数据结构部分
阅读全文
摘要:问题描述参考:http://blog.csdn.net/code_ac/article/details/74158681 算法实现部分: 头文件: 主函数: 注意:这里的基准数是随机产生的,从而期望划分是较为对称的;
阅读全文
摘要:使用分治法进行合并排序,问题描述参见:https://www.cnblogs.com/jingmoxukong/p/4308823.html 算法核心: 测试部分: 注意: (1)由于这里使用了模板函数,一般地模板函数地声明和实现是不能分开的。(如果直接在main.cpp中加入extern void
阅读全文
摘要:这里的前覆盖问题要涉及到分治法; 分治法主要分三步:分解 > 求解 > 合并 (1)分解:将一个大规模问题分解为有限个小规模的问题(小问题之间相互独立,并且它们的问题性质和原始问题的问题性质相同、独立),其实这点和递归有异曲同工之妙,其中小问题的规模为问题最小单位,分解的时候也是递归地分解; (2)
阅读全文
摘要:参考链接:https://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html 函数传参的方式有三种: (1)值传递; (2)引用传递; (3)指针传递; 值传递传递的是这个值的一个拷贝,形参是实参的一个拷贝,对形参的操作不影响实参的
阅读全文
摘要:C++中指针和数组基本等价的原因在于指针算术和C++内部处理数组的方式;将整数变量加一后,其值将增加1;将指针变量加一后,增加的量等于其指向的数据类型的字节数; 指针中存储的是地址,地址在形式上和整数相似,但是意义完全不同,整数可以加减乘除,但地址相乘等操作完全没有意义; Eg: int *p; P
阅读全文