
c++项目相关
文章平均质量分 71
柠檬树下的狒
希望每天进步的阳光boy
展开
-
Linux网络编程笔记
TCP/IP 协议体系是分层的。在使用的时候需要经过 封装 和 分用 的过程。ARP协议提供任意的 网络地址 到物理地址之间的映射。但是其提供的都是可以直接访问到的,直接连接的网络地址对应的物理地址。那是因为在数据链路层,传输的范围只是仅仅限于直接连接的设备之间。在经过网络层的处理之后,我们在数据链路层需要的ip地址是可以一步访问到的ip,因此ip对应的物理地址可以由arp协议来获得。当需要使用的ip没有对应的物理地址,就启动arp协议来找。arp的协议格式为 2 2 1 1 2(操作,也就是类型,比.原创 2021-12-06 11:47:52 · 522 阅读 · 0 评论 -
Effective c++ 笔记1
名词解释:size_t 是c++中的一个代表计数的类型。其实际就是一个typedef 。 但是很有用。在容器的下标操作中,下标就会被转换为size_t 类型。接口interface 。不同于java中的接口,这里指可以访问的函数等资源。比如一个函数的signature(签名,也就是返回类型和参数类型,相当于这个函数名的类型),一个类的成员函数等。client。代表客户,也就是使用你所编写的代码的人或者程序。我们写代码要关注的是把client放在心上,让其可以更加便捷地去用我们写地代码使用..原创 2021-11-24 15:46:57 · 1889 阅读 · 0 评论 -
IO库笔记记录
IO一般指的是 从设备中读取数据或者输出数据到设备中。这里的设备是多种多样的,可以是 文件,控制台窗口等,还可以是一些内存IO。IO类iostream头文件中定义了基本的流,是其他类的基类。cin cout cerr 是这个的对象fstream头文件中定义了文件流,属于是 作为文件的细分领域sstream头文件中定义了字符串流,对应的设备可以认为是string这样的层次设计利用了继承机制。好处是可以像使用基类一样使用子类。我们可以像使用cin cout 那样使用fstream sstre原创 2021-11-13 09:25:23 · 183 阅读 · 0 评论 -
泛型算法笔记
泛型算法就是为了弥补 顺序容器中的成员函数不多的缺点。定义了一组算法,可以实现多个不同的功能,同时可以适用于多个容器。这些算法都定义在头文件 algorithm 中,numeric 文件中也定义了一组数值泛型算法。泛型算法独立于容器。有的是依赖元素类型的操作的。比如,需要find函数需要有 == 运算符。其他算法可能要求元素类型支持 < 运算符。不过多数也支持通过函数的方式来传入比较规则。泛型算法分类:只读算法:常见的有find,用来返回第一个等于给定元素的迭代器。否则给定最后的迭代器。.原创 2021-11-11 15:55:29 · 286 阅读 · 0 评论 -
顺序容器笔记
顺序容器包括 vector, string, deque, list, forward_list, array.vector 是应用最广泛的,元素顺序存储。string和vector类似,但是存储字符串deque为双向列表。可以从前后来进行插入和删除list为双向链表。从任何位置插入删除的速度都很快。但是非顺序访问的速度比较慢。(这也是所有链表的特征)forward_list 为单向链表,特征和list差不多array为定长数组,可以替代内置类型的数组。更加安全。应该要替代。顺序容器的.原创 2021-11-08 09:22:29 · 105 阅读 · 0 评论 -
拷贝控制-笔记
拷贝控制拷贝控制操作定义:拷贝控制操作包括 拷贝构造函数,移动构造函数,拷贝赋值运算符,移动赋值运算符,析构函数。1 2决定了使用同一类型的对象来构造这个对象的时候会发生什么。3 4 决定了使用同一类型的对象来赋值给次对象时候会发生什么。5 决定了次对象销毁时候发生什么。拷贝控制操作的重要之处在于,即使我们不定义这几种操作,编译器也会替我们定义这些操作。但是这有时会导致灾难,因此我们一定要在定义一个类的时候自己定义这些操作。拷贝构造函数如果一个构造函数的第一个参数是自身类型的引用,原创 2021-11-01 19:38:58 · 193 阅读 · 0 评论 -
项目架构梳理
本项目使用到的重点知识网络库c++11的智能指针命名空间类关系Server类服务器的抽象。其规定了服务器的运行模式,也就是MainLoop函数实现整体的循环,重写_RunLogic()函数,为运行逻辑,Recycle为回收逻辑。Init为初始化逻辑。Init逻辑:TCPBind()完成TCP绑定SocketAddr()中...原创 2021-11-01 19:38:14 · 208 阅读 · 0 评论 -
命名空间笔记
命名空间的发明是因为:早期,只有一个命名空间,也就是全局命名空间。不同公司开发的库里的成员要共享这个全局命名空间。为了不造成冲突,函数的名字往往写的很长,这很不便捷。因此,使用命名空间这个概念。一个命名空间相当于一个作用域,不会造成同名冲突,同名也无妨。只要在使用的时候写清楚使用的是哪个命名空间的函数即可。同一命名空间中使用成员,可以不加命名空间限定。如果要使用命名空间之外的成员,那么使用命名空间限定。声明一个命名空间,使用 namespace name {} 。命名空间里面可以定义任何全局命名空间中.原创 2021-10-30 10:17:31 · 183 阅读 · 0 评论 -
多重继承和虚继承
继承中的类作用域类会创建一个命名空间,当继承的时候,子类的命名空间嵌套在父类的命名空间之中。这样,子类对象或者子类对象的指针或者引用 去查找一个元素的时候,可以在子类和父类的命名空间中去寻找。当然,优先找子类的命名空间。当子类的命名空间中找不到的时候,就去父类的命名空间中找。如果一个指针或者引用是一个父类对象的,那么寻找的顺序就是从父类的命名空间开始找。即使实际的对象包含子类的命名空间,因为命名空间的特性,是找不到子类命名空间中的内容的。也是因为这样的机制,子类可以使用和父类命名空间中相同名字的.原创 2021-10-29 13:08:24 · 290 阅读 · 0 评论 -
动态内存笔记
动态内存相对的是静态内存。指的其实就是申请堆空间。进程的内存空间从上到下为程序代码区:用来存储可执行的代码文字常量区:用来存储常量静态区:用来存储 全局变量(不在任何函数里面的变量,又包括了全局静态变量和非静态变量。),局部静态变量,类的static成员。相同点是这些都有全局的生存周期。这只是粗略的说法。静态区实际包括 两部分,一部分是初始化了的全局变量和局部静态变量,static成员。可以叫做data段。另外一部分是没有初始化的全局变量和局部静态变量,static成员。叫做bss段。堆栈..原创 2021-10-28 10:31:26 · 150 阅读 · 0 评论 -
redis学习记录
redit安装使用方法需要在官网下载安装包,然后使用tar来进行解压缩。进入解压之后的目录之后,执行make指令。然后即可安装成功。可以将最重要的文件redis-cli redis-server 放在path目录中去,这样可以直接作为命令来执行,来开启reids服务器和客户端。可以执行按装测试。使用的时候,需要先开启客户端,使用 sudo service redis-server start 来进行开启。可以使用ps和netstat命令来查看工作状态执行redis-cli命令来开启客户原创 2021-10-25 20:28:43 · 2453 阅读 · 1 评论