2018年5月19日

学习 emplace_back() 和 push_back 的区别 emplace_back效率高

摘要: 在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)的时候,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题是临时变量申请的资源就浪费。 c++11引入了右值引用, 阅读全文

posted @ 2018-05-19 16:54 zhangkele 阅读(462) 评论(0) 推荐(0) 编辑

2018年5月5日

c++中 重载 覆盖 隐藏的区别 附加 mutable笔记

摘要: 成员函数被重载的特征有: 1) 相同的范围(在同一个类中); //2) 函数名字相同; 3) 参数不同; 4) virtual关键字可有可无。 覆盖的特征有: 1) 不同的范围(分别位于派生类与基类); //2) 函数名字相同; 3) 参数相同; 4) 基类函数必须有virtual关键字。 隐藏是指 阅读全文

posted @ 2018-05-05 21:27 zhangkele 阅读(163) 评论(0) 推荐(0) 编辑

2018年5月3日

快速学习理解网络协议4

摘要: 4、建立连接方式的差异 4.1TCP 说到 TCP 建立连接,相信大多数人脑海里肯定可以浮现出一个词,没错就是--“三次握手”。TCP 通过“三次握手”来建立连接,再通过“四次挥手”断开一个连接。在每次挥手中 TCP 做了哪些操作呢?流程如下图所示(TCP的三次握手和四次挥手): 上图就从客户端和服 阅读全文

posted @ 2018-05-03 12:09 zhangkele 阅读(324) 评论(0) 推荐(0) 编辑

2018年5月2日

快速学习理解网络协议3

摘要: 4、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。 ▲ TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。<ignore_js_o 阅读全文

posted @ 2018-05-02 22:48 zhangkele 阅读(273) 评论(0) 推荐(0) 编辑

快速学习理解网络协议2

摘要: 4、一个小结 先对前面的内容,做一个小结我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样: 发送这个包,需要知道两个地址: * 对方的MAC地址; * 对方的IP地址。 有了这两个地址,数据包才 阅读全文

posted @ 2018-05-02 18:19 zhangkele 阅读(202) 评论(0) 推荐(0) 编辑

快速学习理解网络协议1

摘要: 5、内容概述 5.1五层模型 互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成 阅读全文

posted @ 2018-05-02 16:50 zhangkele 阅读(250) 评论(0) 推荐(0) 编辑

2018年4月30日

c++的直接初始化与复制初始化 未完成!!!!!!!!!!!!

摘要: 直接初始化:是直接调用类的构造函数进行初始化。如下: string a;//调用默认构造函数 string a("hello");//调用参数为 const char* 类型的构造函数 string b(a);//调用拷贝构造函数 类似 string b = a; 复制初始化:指的是用“=” 号来初 阅读全文

posted @ 2018-04-30 22:00 zhangkele 阅读(371) 评论(0) 推荐(0) 编辑

高性能网络编程(二)

摘要: C10K问题的解决方案探讨要解决这一问题,从纯网络编程技术角度看,主要思路有两个: 一个是对于每个连接处理分配一个独立的进程/线程;另一个思路是用同一进程/线程来同时处理若干连接。 8.1 思路一:每个进程/线程处理一个连接 这一思路最为直接。但是由于申请进程/线程会占用相当可观的系统资源, 同时对 阅读全文

posted @ 2018-04-30 13:47 zhangkele 阅读(195) 评论(0) 推荐(0) 编辑

2018年4月26日

高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少

摘要: 常识一:文件句柄限制 在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can't open so many files”。这时你需要明白操作系统对可以打开的最大文件数的限制。 1 阅读全文

posted @ 2018-04-26 21:14 zhangkele 阅读(3068) 评论(1) 推荐(1) 编辑

2018年4月3日

c++ 三五法则 自己理解

摘要: 简介 三五法则规定了什么时候需要 1 拷贝构造函数 2 拷贝赋值函数 3 析构函数 1. 需要析构函数的类也需要拷贝构造函数和拷贝赋值函数。 通常,若一个类需要析构函数,则代表其合成的析构函数不足以释放类所拥有的资源,其中最典型的就是指针成员(析构时需要手动去释放指针指向的内存)。 所以,若存在自定 阅读全文

posted @ 2018-04-03 14:01 zhangkele 阅读(2089) 评论(0) 推荐(0) 编辑

导航