![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Baymax_yan
C++,后台服务器,机器视觉,图像处理
展开
-
后台开发核心技术与应用实践读书笔记(九)
后台开发核心技术与应用实践学习笔记(九)第9章 多线程多进程频繁上下文切换会严重影响系统性能;进程间通信要求复杂的系统实现同一进程内部的多个线程共享该进程的所有资源,通过线程可以支持同一个应用程序内部的并发,免去了进程频繁切换的开销;并发任务间的通信变得简单9.1 多线程是什么单线程一个进程只有一个控制权(函数调用时,该函数获得控制权),多线程允许有多个控制权多线程的进程再内存中...原创 2019-04-26 14:03:15 · 337 阅读 · 0 评论 -
C++-Primer-Plus第6版18个重点笔记
C+±Primer-Plus第6版18个重点笔记本文出自:https://blog.csdn.net/lanxuezaipiao/article/details/41622351下面是我看《C++ Primer Plus》第6版这本书后所做的笔记,作为备忘录便于以后复习。C++的const比C语言#define更好的原因?首先,它能够明确指定类型,有类型检查功能。其次,可以使用C+...转载 2019-04-30 15:05:50 · 354 阅读 · 0 评论 -
C++ Primer读书笔记梳理系列(一)
C++ Primer读书笔记梳理系列(上)第二章 变量和基本类型引用和指针引用就是对象的别名(不是对象),之后不能被修改,必须初始化,类型必须进准匹配,且不能与表达式的结果匹配int &ref1 = 10; //错double a = 3.14;int &ref2 = a; //错,类型没有精确匹配int b = 10;int &ref3 = a+10;...原创 2019-04-30 14:59:51 · 123 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(七)
后台核心技术开发与应用实践读书笔记(七)第4章 网络IO模型7.0 IO操作 不同的IO设备有不同的特点同步IO与异步IO同步:必须等到IO操作完成后控制权才返回给用户进程异步:无需等IO操作完成,就将控制权返回给用户进程当一个IO操作发生时(如read)会涉及两个对象调用这个IO的进程系统内核当一个read操作发生时,会经历两个阶段:等待数据准备将数...原创 2019-04-25 15:05:04 · 256 阅读 · 0 评论 -
C++11 中的lambda表达式
lambda表达式:https://www.cnblogs.com/DswCnblog/p/5629165.html转载 2019-04-30 10:31:46 · 96 阅读 · 0 评论 -
构造函数不能是虚函数
构造函数为什么不能使虚函数1.虚函数对应一个虚指针,虚指针其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过 虚指针执行那个虚函数表(编译期间生成属于类)来调用,可是对象还没有实例化,也就是内存空间还没有,就没有虚指针,所以构造函数不能是虚函数。2.虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的...原创 2019-04-30 10:08:53 · 11113 阅读 · 2 评论 -
后台开发核心技术与应用实践读书笔记(六)
后台核心技术开发与应用实践读书笔记(六)第6章 TCP协议6.1 TCP协议网络模型七层(IOS)五层四层(TCP/IP)应用层表示层会话层应用层应用层传输层运输层传输层网络层网络层网间层数据链路层数据链路层网络接口(链路层)应用层物理层 当然讨论最多的是TCP/IP模型TCP头部...原创 2019-04-25 12:07:03 · 261 阅读 · 0 评论 -
Effective C++ 读书笔记总结
Effective C++ 读书笔记总结一 、 书本目录让自己习惯C++条款01:视C++为一个语言联邦条款02:尽量以const,enums,inline替换#define条款03:尽可能使用const条款04:确定对象被使用前先被初始化构造/析构/赋值运算条款05:了解C++默默编写并调用哪些函数条款06:若不想使用编译器自动生成的函数,就该明确拒绝条款07:为多...原创 2019-04-29 22:06:48 · 297 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(四)
后台核心技术开发与应用实践读书笔记(四)第4章 编译4.1 编译与链接 过程:预处理->编译->汇编->链接预处理:主要处理那些源代码文件只能够的以”#”开始的预编译指令。比如“#include”、“#define”,过滤所有注释,添加行号,保留#pragma编译器指令等,最后生成一个.i文件编译:编译器扫描(词法分析)、语法分析、语义分析、源代码优化、代码生成和...原创 2019-04-24 22:18:36 · 176 阅读 · 0 评论 -
C++ Primer读书笔记梳理系列(二)
C++ Primer读书笔记梳理系列(中)第八章 顺序容器vector对象如何增长的做法将已有的元素移动到新空间中然后添加新元素释放旧的存储空间,一般新空间是旧空间的两倍(有的编译器是1.5倍)注意reserve(内存空间),resize(元素个数)的区别注意capacity和size的区别string构造方法 string(cp, n) ...原创 2019-05-06 16:21:18 · 88 阅读 · 0 评论 -
C++ Primer 读书笔记梳理系列 (四)
C++ Primer 读书笔记梳理系列 (四)这里主要接上一篇文章的拷贝控制,不过这里是C++11的新特性,移动语义第13章 拷贝控制对象移动引入移动对象的原因赋值操作时,对象拷贝后就立即销毁,在这些情况下移动对象而非拷贝对象会大幅度提升性能有些类型不允许被拷贝(如IO类和unique_ptr),在就标准中我们无法再容器中保存他们,因为它们无法被拷贝,就不存在赋值之类的操作,但引入移...原创 2019-05-09 11:00:35 · 125 阅读 · 0 评论 -
C++后台开发相关问题
C++后台开发相关问题1、请你说一下rector模式的组成reactor模型要求主线程只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程,除此之外,主线程不做任何其他实质性的工作,读写数据、接受新的连接以及处理客户请求均在工作线程中完成。其模型组成如下:1)Handle:即操作系统中的句柄,是对资源在操作系统层面上的一种抽象,它可以是打开的文件、一个连接(Socket)、...原创 2019-06-06 15:29:05 · 272 阅读 · 0 评论 -
C++11 特性
C++11 特性1、请问C++11有哪些新特性?C++11 最常用的新特性如下:auto关键字:编译器可以根据初始值自动推导出类型。但是不能用于函数传参以及数组类型的推导nullptr关键字:nullptr是一种特殊类型的字面值,它可以被转换成任意其它的指针类型;而NULL一般被宏定义为0,在遇到重载时可能会出现问题。智能指针:C++11新增了std::shared_ptr、std::w...原创 2019-06-06 15:28:41 · 152 阅读 · 0 评论 -
C++ 基础——容器和算法
C++ 容器和算法1、 map和set有什么区别,怎么是写的都是关联容器,底层实现都是红黑树区别在于map键值对应,关键值其索引作用,值则表示与索引相关联的数据;Set与之相对就是关键字的简单集合,set中每个元素只包含一个关键字。set的迭代器是const不允许修改元素的值,map允许修改valuemap支持下标操作,set不支持下标操作2、介绍一下STL的allocat...原创 2019-06-06 15:28:17 · 300 阅读 · 0 评论 -
C++面向对象与泛型编程
C++面向对象与泛型编程1、 什么是右值引用,跟左值有什么区别右值引用是C++11引入的新特性,实现了移动语义和进准传递消除两个对象交换时不必要的对象拷贝,节省运算存储资源,提高效率能够简介明确的定义泛型函数左值右值的区别能对表达式取地址、或具名对象/变量。一般指表达式结束后依然存在的持久对象。不能对表达式取地址,或匿名对象。一般指表达式结束就不再存在的临时对象。左值...原创 2019-06-06 15:27:43 · 673 阅读 · 0 评论 -
C++基础语言篇(二)
C++基础语言篇(二)1、 请你回答一下为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数 考点:虚函数 析构函数将可能会被继承的父类的析函数设置为虚函数,可以保证当我们new一个子类对象,然后使用基类指针指向该对象,释放基类指针时可以释放掉子类的空间可以防止内存泄漏C++默认的析构函数不是虚函数是因为虚函数需要虚函数表和虚表指针,占用额外的内存,而对于不被继承的类会造成浪费...原创 2019-06-06 15:27:22 · 159 阅读 · 0 评论 -
C++基础语言篇(一)
C++基础语言篇(一)1. 说一下static关键字的作用全局静态变量全局变量就定义成全局静态变量在静态存储区域,整个程序运行期间一直存在会被自动初始化为0作用域:在声明它的文件之外的是不可见的,从定义之处一直到文件结尾局部静态变量局部静态变量在静态存储区自动初始化为0作用域仍为局部作用域,当局部静态变量离开作用域时,并没销毁,仍然在内存当中,只不过不能对其进行访问,...原创 2019-06-06 15:26:58 · 162 阅读 · 0 评论 -
STL中的bind 与boost中的bind
STL中的bind 与boost中的bindC++11 中的std::function和std::bindboost::bind 函数绑定器原创 2019-05-27 15:55:01 · 816 阅读 · 0 评论 -
C++ Primer读书笔记梳理系列(三)
C++ Primer读书笔记梳理系列(三)在我看来这部分的内容,比较底层,也是比较难的,但是非常重要,面试过程中也经常遇到第13章 拷贝控制拷贝、赋值与销毁拷贝控制操作 特殊的成员函数 控制类的行为 拷贝和移动构造函数用同类型的另一个对象初始化本对象时做什么(class a(b)) 拷贝和移动赋值运算符将一...原创 2019-05-06 21:56:46 · 121 阅读 · 0 评论 -
Effective C++ 读书笔记(八)
Effective C++ 读书笔记(八)8、定制new和delete条款 49 :了解new-handler的行为set_new_handler允许客户指定一个函数,在内存分配无法获得满足时被调用。nothrow new是一个颇为局限的工具,因为它只适用于内存分配;后继的构造函数调用还是有可能抛出异常。条款 51:编写new和delete时需固守常规operator new应...原创 2019-04-29 13:52:56 · 297 阅读 · 0 评论 -
Effective C++ 读书笔记(七)
Effective C++ 读书笔记(七)7、模板与泛型编程条款 41:了解隐式接口和编译期多态class 和 template 都支持接口和多态。在 class 中接口是显式的,即我们有具体的函数签名。多态则通过 virtual 函数发生在运行期。在 template 中接口是隐式的,基于有效的表达式。多态则是通过 template 的具现化和函数重载解析发生在编译期。条款 42...原创 2019-04-29 13:52:29 · 238 阅读 · 0 评论 -
c++中的初始化列表详解
c++中的初始化列表详解本文出自: https://blog.csdn.net/lws123253/article/details/80368047目录:定义使用初始化列表的原因必须使用初始化列表的时候成员变量的顺序定义与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。class ...转载 2019-04-27 11:45:34 · 134 阅读 · 0 评论 -
后台核心技术开发与应用实践读书笔记总结
后台核心技术开发与应用实践读书笔记总结一、读书感受 《后台开发核心技术与应用实践》这本书我也是从牛客网上一位后台大佬上得知的。是由腾讯员工写的,很像博客于是我第二遍读的时候干脆写成博客的形式吧,以便后来找工作面试之前读一读。虽然网上说这本书评价不是很好,可能因为讲的不够详细吧,但是讲的比较全面,涉及了后台方面的方方面面,总结还可以,也比较容易明白。此次读书笔记也参考了别人的博客,但大多数是书...原创 2019-04-26 20:52:17 · 203 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(八)
后台核心技术开发与应用实践读书笔记(八)第8章 网络分析工具8.1 ping 使用ping检查端对端网络的联通性8.2 tcpdump可以将网络中传送的数据包的“头”完全截取下来提供分析,支持对协议、主机、网络和端口的过滤tcpdump使用tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件...原创 2019-04-26 19:58:09 · 466 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(五)
后台核心技术开发与应用实践读书笔记(五)第五章 调试5.1 strace通过跟踪系统调用观察程序在后台所做的事情跟踪信号传递统计系统调用5.2 gdb常用的调试命令 命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择...原创 2019-04-26 17:49:36 · 435 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(三)
后台核心技术开发指南与应用实践读书笔记(三)第3章 常用的STL使用3.1 STL是什么 STL是一个标准模板库,是一个高效的C++程序库3.2 stringstring类的实现使用strlen、strcpy、strcat、strcmp等,注意判NULL下面是一道面试题#include "stdafx.h"#include <string.h>class S...原创 2019-04-26 15:47:26 · 147 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(十二)
后台核心技术开发与应用实践读书笔记(十二)第12章 HTTP协议12.1 HTTP协议工作流程HTTP协议与HTTPS协议的区别http默认端口号是80,https为443http是基于传输层的TCP协议,https是基于TLS与SSL上面的一次http操作成为一个事务,其工作过程为:首先建立客户机与服务器的连接建立连接后,客户机发送一个请求给服务器服务器接收到请...原创 2019-04-26 14:12:50 · 535 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(十一)
后台核心技术开发与应用实践读书笔记(十一)第11章 进程间通信11.1 管道两进程间单向通信机制。也称为半双工管道无名管道特点数据只能一个进程流入另一个(读写);双工通信要建立两个只用于父子进程与兄弟进程(亲缘关系)没有名字,要事先约定好数据格式有名管道(FIFO)特点(相对于无名)使不相关的两个进程实现彼此通信可以通过路径名来指定FIFO严格遵循先进先出规...原创 2019-04-26 14:09:38 · 342 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(十)
后台核心技术开发与应用实践读书笔记(十)第10章 进程10.1 程序与进程进程结构:代码段:存放程序代码的数据,数个进程运行同一个程序可以使用同一个代码段数据段:存放全局变量、常量、静态变量堆栈段:用于函数调用,存放函数参数与局部变量。另外还包括了PCB,它位于继承核心堆栈的底部不额外分配空间,是进程的唯一标志。系统通过PCB对进程进行管理和调度程序转化为进程的步骤内核将...原创 2019-04-26 14:04:31 · 322 阅读 · 0 评论 -
野指针与悬空指针
野指针与悬空指针一、野指针产生的原因1、指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会指向随机区域,因为任何指针变量(除了static修饰的指针变量)在被定义的时候是不会被置空的,它的默认值是随机的。2、指针被释放时没有被置空:我们在用malloc开辟内存空间时,要检查返回值是否为空,如果为空,则开辟失败;如果不为空,则指针指向的是开辟的内存空间的首地址。指针...原创 2019-04-27 16:29:23 · 3814 阅读 · 4 评论 -
何时需要自定义拷贝构造函数和赋值运算符及二者区别
何时需要自定义拷贝构造函数和赋值运算符及二者区别本文出自:https://www.cnblogs.com/pluser/p/copy_constructor_fun.html包含动态内存分配的类需要自定义拷贝构造函数和赋值构造函数。即当类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不要使用默认的。 无定义默认为浅拷贝,此时参数对象和创建对象(赋值对象)的指针...转载 2019-04-27 20:19:43 · 459 阅读 · 0 评论 -
Effective C++ 读书笔记(六)
Effective C++ 读书笔记(六)6 、继承和面向对象设计条款 32.确定你的public继承朔模出is-a关系以C++面向对象编程,最重要一个规则是:public inheritance(公开继承)意味着“is-a”(是一种)的关系。在这里是“直译”,例如class D: public B直译就是D是一种B。“public”继承意味着is-a。适用于base classes身上...原创 2019-04-29 13:52:04 · 250 阅读 · 0 评论 -
Effective C++ 读书笔记(五)
Effective C++ 读书笔记(五)5、 实现条款26: 尽可能延后变量定义式的出现时间“尽可能延后”的意义,不仅仅是把变量定义延迟到变量的使用前一刻为止,甚至该尝试延后这份定义到能够给它赋初值为止,这样还可以避免无意义的default构造函数。即使用前定义并初始化对于循环A代码Widget w;//定义在循环外for(int i=0;i < n;++i) ...原创 2019-04-29 13:51:46 · 262 阅读 · 0 评论 -
Effective C++ 读书笔记(四)
Effective C++ 读书笔记(四)4、设计与声明条款18:让接口容易被正确使用,不容易被误用好的接口容易被正确使用,不容易被误用。”促进正确使用“的办法包括接口一致性,以及于内置类型兼容。”阻止误用“方法包括建立新类型、限制类型上的操作、束缚对象值,以及消除客户的资源管理责任。shared_ptr支持特定的删除器。可以防范cross-DLL problem。shared_...原创 2019-04-29 13:51:18 · 275 阅读 · 0 评论 -
Effective C++ 读书笔记(三)
Effective C++ 读书笔记(三)3、 资源管理条款 13:以对象管理资源在一个作用域内,在delete 之前就return了,会造成内存泄漏,所以delete管理内存远远不够void fun(){ Investment* pInv=CreateInvestment(); ……//这里提前 return delete pInv;//释放资源}用对象控制对象...原创 2019-04-29 13:50:58 · 274 阅读 · 0 评论 -
Effective C++ 读书笔记(二)
Effective C++ 读书笔记(二)2、 构造/析构/赋值运算条款05 :了解C++默认编写并调用哪些函数 空类经过编译器处理后会有默认构造函数、复制构造函数、赋值操作符和析构函数。这些函数都是public且inline默认构造函数,由它来调用基类和non-static成员变量的构造函数析构函数是否是虚函数,继承基类,如果没基类,那么默认是non-virtual,析构函数会调用...原创 2019-04-29 13:50:43 · 322 阅读 · 0 评论 -
Effective C++ 读书笔记(一)
Effective C++ 读书笔记(一)1、让自己习惯C++条款 01 :视C++为一个语言联邦C++的四个层次:C:C++是在C语言的基础上发展而来的Object-Oriented C++:这是C++中不同于C的部分,这里主要指面向对象。Template C++:C++中的泛型编程。STL:这是一个标准模板库,它用模板实现了很多容器、迭代器和算法,使用STL往往事半功倍。条...原创 2019-04-29 13:50:21 · 835 阅读 · 1 评论 -
后台开发核心技术与应用实践读书笔记(二)
后台核心技术开发与应用实践读书笔记(二)第2章 面向对象的C++2.1 类与对象概念成员函数封装性把数据和数据相关的操作封装在类里,只对可信的类或对象开放构造函数数据成员不能再类中初始化必须在构造函数中类中可以定义不同的构造函数以提供不同的初始化方式(重载)注意要在声明构造函数参数时指定默认参数值,而不是在定义中如果定义了全是默认参数的构造函数,则不能定义重...原创 2019-04-24 17:43:32 · 203 阅读 · 0 评论 -
后台开发核心技术与应用实践读书笔记(一)
后台核心技术开发与应用实践读书笔记(一)C++编程常用技术1.1 第一个C++程序#include<>与#include” “后者搜索当前目录,在搜索标准目录#include与#include<iostream.h>两者是不同的,前者是C++标准为了与C语言区别开,也为了正确的命名空间,规定的头文件不带.h;1.2 函数函数的定义函数重...原创 2019-04-24 15:20:04 · 627 阅读 · 0 评论 -
MFC相关知识收集(更新中)
1、MFC中五个初始类的作用原创 2019-10-08 00:35:11 · 189 阅读 · 0 评论