C++
小帅哥gaoyi
上帝保佑,大家晚安!https://github.com/gaoyi221119
展开
-
程序Bug定位流程
5、程序崩溃时dmp定位;2、输入特殊的数据定位;原创 2023-11-30 10:04:50 · 91 阅读 · 0 评论 -
C++ 基本算法模式
一:二、原创 2023-10-24 13:20:24 · 86 阅读 · 0 评论 -
Redis分析
如图:原创 2023-10-20 09:31:49 · 78 阅读 · 0 评论 -
cmake、make、gcc之间的关系
见图所示:原创 2023-10-08 14:55:46 · 85 阅读 · 0 评论 -
C++11 之 lambda函数
**1. lambda 函数概述1.1. lambda 函数中“捕捉列表”详解2. lambda 函数特点3. lambda 函数使用4. lambda 函数与 STLlambda 函数概述lambda 表达式是一种匿名函数,即没有函数名的函数;该匿名函数是由数学中的λ演算而来的。通常情况下,lambda函数的语法定义为:**[capture] (parameters) muta...原创 2020-02-29 13:52:58 · 150 阅读 · 0 评论 -
MFC开发中添加自定义消息和消息响应函数
(1)在.h或.cpp文件定义一个消息 #define CLICK_MESSAGE_BOX WM_USER+1001//add by 20180612 给主窗口ctrl.cpp发送消息 //自定义消息 #define WM_PENSIGNMSG WM_USER+1001(2)在.h中类定义里添加消息映射DECLARE_MESSAGE_MAP()//类的定义 clas...原创 2020-01-04 16:10:07 · 986 阅读 · 0 评论 -
C++ 11 新特性 C++ 11 新特性
C++11新特性: 1、auto 2、nullptr 3、for 4、lambda表达式 5、override、final 6、右值引用 7、move构造函数 8、容器初始化**> 1. nullptr**nullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会...原创 2019-09-26 18:24:27 · 272 阅读 · 0 评论 -
vs中debug和release版本的区别
vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。debug程序通常比...原创 2019-03-29 13:23:48 · 2872 阅读 · 0 评论 -
MFC对控件添加变量时选择control和value有什么区别
简单点说,Value 就是一个变量 ,control 就是一个控件。主要的区别也就是 变量 和 控件之间的区别,虽然他们实质上都是一样的。可是选择 Value ,MFC 会把控件的内容对应到一个变量上。除非你用其他API取得这个控件进行操作,否则,就是一个变量而已。主要的用途是 UpdateData。进行数据读些。而作为控件,把就是把这个东...原创 2019-03-27 15:03:14 · 1164 阅读 · 0 评论 -
为什么要用null!=object(null==object)这种形式
不管是null!=object还是object!=null,在比较的时候都会读取一次object的值。把null写左边其实可以防止编程出现的低级错误,你用不等于(!=)不好说明,改用等于。if(object == null)这个语句有时候没注意就会写成:if(object = null)//少了个等号这样在有的语言中编译是不会出错的,而在运行中结果就不知道了。。但是你把null写在左边,n...原创 2019-03-27 13:40:39 · 4327 阅读 · 1 评论 -
多线程和进程经典面试题
一、概念性问答题第一题:线程的基本概念、线程的基本状态及状态之间的关系?概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。好处 :(1)易于调度。(2)提高并发...原创 2019-02-01 13:59:52 · 3290 阅读 · 0 评论 -
线程与进程区别和联系
●多进程和多线程的区别进程它是具有独立地址空间的,优点就是隔离度好,稳定,因为它是操作系统管理的,进程和进程之间是逻辑隔离的,只要操作系统不出问题的话,一个进程的错误一般不会影响到其它进程,缺点就是信息资源共享麻烦。而线程只是进程启动的执行单元,它是共享进程资源的,创建销毁、切换简单,速度很快,占用内存少,CPU利用率高。但是需要程序员管控的东西也比较多,相互影响出问题的机率较大,一个线程挂掉将...原创 2019-02-01 13:44:00 · 1027 阅读 · 0 评论 -
50条大牛C++编程开发学习建议
每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少。本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真的理解了这些建议,相信能够在学习时准确的抓住侧重点,少走弯路。下面列出这50条建议: 1、把C++当成一门新的语言学习(和C没啥关系!)。 2、看《Thinking In C++》,不要看《C++原创 2017-03-10 09:20:16 · 238 阅读 · 0 评论 -
C++面试中关于智能指针的问题
1、 什么是智能指针? 2、 分析下常见的智能指针有哪些? 3、实现一个智能指针呗?(没具体说写哪个,建议默认写:unique_ptr) 1、答:智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露(利用自动调用类的析构函数来释放内存)。它的一种通用实现技术是使用引用计数(除此之外还有资源独占,如(a原创 2017-07-07 10:32:41 · 2150 阅读 · 2 评论 -
浅谈 C++ 中的 new/delete 和 new[]/delete[]
在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗? new [] 和 delete [] 又是什么?什么时候用它们? 你知道 operator new 和 operator delete 吗? 为什么 new [] 出来的数组有时可以用 delete 释放有时又不行? … 如果你对这些问题都有疑问的话原创 2017-07-07 14:40:22 · 249 阅读 · 0 评论 -
内存泄漏及内存溢出
1. 什么是内存泄漏(memory leak) 指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 2. 对于C和C++这种没有Garbage Collection 的语言来讲,我们主要关注两种类型的内存泄漏: 堆内存泄漏(Heap leak)。对内存指的是程序运行中根原创 2017-09-13 10:31:12 · 286 阅读 · 0 评论 -
2017年,我们为什么要学习C++?
学习C++的一大好处在于,它可以帮助我们理解生命周期(Lifetime)和所有权(Ownership)的概念,以及类型的抽象,还可了解到怎样利用类型保持API的使用方式不变。除此之外,为何各种高级语言层出的今天,学习C++仍颇有价值?“C++已死” 大学时代,我就听过这样的说法——差不多十年前的事儿了。那时候至少在美国,Java已经成了各公司的主流语言。程序员也许都很熟悉Joel Spolsky在2原创 2017-12-08 10:12:03 · 4610 阅读 · 1 评论 -
C++中的容器类详解
C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。1、vector连续存储结构,每个元素在内存上是连续的;支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下;2、...原创 2018-11-07 18:10:27 · 483 阅读 · 0 评论 -
C++容器适配器
一、标准库顺序容器适配器的种类标准库提供了三种顺序容器适配器:queue(FIFO队列)、priority_queue(优先级队列)、stack(栈)二、什么是容器适配器首先,我们要明白适配器是干什么的?其实就是一个接口转换装置,是得我们能用特定的方法去操作一些我们本来无法操作的东西。举一个例子,比如你的一个设备支持串口线,而你的电脑支持的是usb口,这时候,我们没有必要重新买一个支持usb...原创 2018-11-08 19:07:03 · 169 阅读 · 0 评论 -
导出函数__declspec(dllexport)
关于DLL的函数:动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function)。导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。输出函数的方法有以下几种:1、传统的方法在模块定义文件的EXPORT部分指定要输入的函数或者变量。语法格式如下:entryname[=internalname] [@or...原创 2018-11-15 13:45:14 · 3138 阅读 · 0 评论 -
C++11 | 运行时类型识别(RTTI)
C++11里的RTTI更好用了,参见这里:[http://en.cppreference.com/w/cpp/types]。与RTTI相关的有几个类和方法:type_info类typeid操作符type_index类type_infotype_info类在头文件<typeinfo>中定义,代表了一个C++类型的相关信息。一般由typeid操作符返回,不能自己构造。typ...原创 2018-11-15 17:20:59 · 1203 阅读 · 0 评论 -
C++中this指针的理解和用法
关于this指针的一个精典回答: 当你进入一个房子后, 你可以看见桌子、椅子、地板等, 但是房子你是看不到全貌了。 对于一个类的实例来说, 你可以看到它的成员函数、成员变量, 但是实例本身呢? this是一个指针,它时时刻刻指向你这个实例本身。 个人理解: (ps:class类就好比这座房子,this就好比一把钥匙,通过钥匙来打开了这座房子的门,那么里面的东西就随意你取用了)原创 2017-03-06 14:27:30 · 301 阅读 · 0 评论