杂
蜗牛_Wolf
有道无术,术可求;无道有术,止于术。
展开
-
通过虚函数表访问基类的私有虚函数
#include <iostream.h>class person{public:virtual void name(){cout<<"A::name"<<endl;}private:virtual void sex(){cout<<"A::sex"<<endl;}};class student:public ...转载 2020-02-11 08:57:21 · 579 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数(转载)
请编写String的上述4个函数。C++代码//普通构造函数 String::String(const char *str) { if(str==NULL) { m_data = new char[1]; // 得分点:对空字符串自动申请存放结束标志'\0'的//加分点:对m_data加NULL 判断 ...转载 2020-02-11 08:32:53 · 723 阅读 · 0 评论 -
vs中检测内存泄漏的方法
使用vs的内存检测有以下几种方法。在debug模式下以F5运行:方法一:#define CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> //在入口函数中包含 _CrtDumpMemoryLeaks(); //即可检测到内存泄露//以如下测试函数为例:int main(){...转载 2019-12-20 16:16:43 · 428 阅读 · 0 评论 -
TLS--线程局部存储
TLS--线程局部存储概念:线程局部存储(Thread Local Storage,TLS)用来将数据与一个正在执行的指定线程关联起来。进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程...转载 2019-02-12 13:05:37 · 945 阅读 · 0 评论 -
虚拟内存与物理内存的联系与区别
操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就...转载 2019-03-05 06:45:50 · 157 阅读 · 0 评论 -
负载均衡的常用算法
负载均衡的常用算法在集群中,假设有五台服务器,他们之间的地位相同(主备模式不是我们要讨论的内容),都对外提供服务。当浏览器大量请求到达时,如何决定哪个请求到达哪个服务器上,这就是我们这次讨论的核心内容。负载均衡的策略分为应用服务器和分布式缓存集群两种适应场景。为什么这么分呢?简单的说,应用服务器只需要转发请求就可以了。但分布式缓存集群,比如redis、Memcached等,更多的是需要...转载 2019-03-10 17:41:33 · 166 阅读 · 0 评论 -
linux C/C++服务器后台开发面试题总结
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互联网开发公司的主流web后台开发语言,主要框架为mvc模型,如smarty,yaf,升级的PHP7速度较快,对服务器的压力要小很多,在新浪微博已经有应用,对比很明显。2)C/C++开发语言,C语...转载 2019-04-15 07:06:57 · 1336 阅读 · 0 评论 -
代码重构原则和方法
重构原则:我们重构代码的原则很简单,就是我往让代码保持:1、清晰2、简单3、可扩展。重构方法:1、 提取子函数2、 上移至父类3、 下移至子类4、 封装固定的调用逻辑5、 使用泛型去除重复逻辑6、 使用对象避免过多的参数7、 转移函数8、 将类型码转换为状态模式9、...转载 2019-08-17 16:58:03 · 393 阅读 · 0 评论 -
C++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的Boost
1.C++多线程编程的困扰C++从11开始在标准库之中引入了线程库来进行多线程编程,在之前的版本需要依托操作系统本身提供的线程库来进行多线程的编程。(其实本身就是在标准库之上对底层的操作系统多线程API统一进行了封装,笔者本科时进行操作系统实验是就是使用的pthread或<windows.h>来进行多线程编程的)提供了统一的多线程固然是好事,但是标准库给的支持实在是有限,具...转载 2019-09-07 15:15:18 · 231 阅读 · 0 评论 -
五种通讯方式总结
程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。...转载 2019-09-20 07:33:37 · 9993 阅读 · 0 评论 -
常用调度算法
转发自:http://blog.chinaunix.net/uid-25132162-id-361291.html一、常见的批处理作业调度算法1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。2....转载 2019-01-23 19:22:56 · 460 阅读 · 0 评论 -
负载均衡的常用算法
负载均衡的常用算法在集群中,假设有五台服务器,他们之间的地位相同(主备模式不是我们要讨论的内容),都对外提供服务。当浏览器大量请求到达时,如何决定哪个请求到达哪个服务器上,这就是我们这次讨论的核心内容。负载均衡的策略分为应用服务器和分布式缓存集群两种适应场景。为什么这么分呢?简单的说,应用服务器只需要转发请求就可以了。但分布式缓存集群,比如redis、Memcached等,更多的是需要...转载 2019-01-23 19:02:21 · 1198 阅读 · 0 评论 -
Kqueue与epoll机制
首先介绍阻塞与非阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做);那么你可以去睡觉了,因为你知道快递把货送来时一定会给你打个电话(假定一定能叫醒你)。非阻塞忙轮询。接着上面等快递的例子,如果用忙轮询的方法,那么你需要知道快递员的手机号,然后每分钟给他挂个电话:“你到了没?”很明显一般人不会用第二...转载 2019-01-11 17:24:02 · 374 阅读 · 0 评论 -
国外牛人总结的机器学习领域的框架、库以及软件
国外牛人总结的机器学习领域的框架、库以及软件本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。C++计算机视觉CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。通用机器学习MLP...转载 2018-07-21 08:06:06 · 435 阅读 · 0 评论 -
并发危险:解决多线程代码中的 11 个常见的问题
转自:http://msdn.microsoft.com/zh-cn/magazine/cc817398.aspx 本文将介绍以下内容: 基本并发概念 并发问题和抑制措施 实现安全性的模式 横切概念 本文使用了以下技术: 多线程、.NET Framework 目录数据争用 忘记同步 粒度错误 读写撕裂 无锁定重新排序 ...转载 2018-07-31 15:30:19 · 345 阅读 · 0 评论 -
什么是分布式系统,如何学习分布式系统
什么是分布式系统,如何学习分布式系统目录什么是分布式系统 分布式系统挑战 分布式系统特性与衡量标准 组件、理论、协议 用一个请求串起来 一个简化的架构图 概念与实现 总结 references 正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包括CAP理论、分布式存储与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统...转载 2018-11-26 04:51:28 · 156 阅读 · 0 评论 -
VS解决方案配置
首先,解决方案和项目文件夹包含关系(c++项目):VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹,ssyy文件夹代表整个ssyy项...转载 2018-12-13 08:43:46 · 1048 阅读 · 0 评论 -
VS解决方案配置
首先,解决方案和项目文件夹包含关系(c++项目):VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹,ssyy文件夹代表整个ssyy项...转载 2018-12-13 08:45:01 · 1565 阅读 · 0 评论 -
VS解决方案配置
首先,我们一般不会修改解决方案的属性,而是设置每个项目各自的属性.接着上一篇文章,我们来看看我们应该怎样来设置各项目的项目属性更好:我们以NYOJ_001项目的Debug版的设置为例:在常规选项里,我们一般会设置输出目录(即生成.exe文件的目录),中间目录(即中间文件的目录)。当然你也可以在这里设置生成的.exe文件的文件名甚至扩展名等。如下图所示:一般设置如下的目录:如果不...转载 2018-12-13 08:46:25 · 2419 阅读 · 0 评论 -
Redis'MongdbMemcache
一、缓存 搞懂缓存那些事:https://blog.csdn.net/a724888/article/details/80785020 区别2 二、Redis、MongoDB、Memcached区别: 区别1:https://www.cnblogs.com/457248499-qq-com/p/7392653.html 区别2:https://www.cnblo...转载 2018-12-20 07:24:39 · 105 阅读 · 0 评论 -
函数指针详解
这篇文章把函数指针的各种常用情况做了一个详解的总结。 1. 指向普通函数的指针 很简单,如下的例子可以说明基本格式和用法: int int_add(int a, int b){ return (a+b);}int int_sub(int a, int b){ return (a-b);}int (*int_operator)(int, int) = ...转载 2018-12-21 11:27:19 · 5420 阅读 · 0 评论 -
Dlib机器学习笔记1 -- Windows下的编译安装调试(超详细,菜鸟也成功)
1. 下载Dlib DLib的官方地址是:http://dlib.net/ 目前最新的版本是19.4,点击下载得到一个压缩文件。2. 下载CMake CMake的官方地址是:https://cmake.org/ 点击进入到下载页面,里面有很多Release版本。我不需要源码,因此选择了一个Binary版本,如下图:现在我们已经下载了Dlib...转载 2018-12-22 14:19:13 · 209 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库 值得学习的C语言开源项目- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://hom...转载 2018-07-21 08:02:51 · 206 阅读 · 0 评论