07 2018 档案
摘要:转发请注明出处:https://www.cnblogs.com/fnlingnzb-learner/p/9374732.html 最近在研究一些经常用到的东西想把它们做一个汇总,想了想用到最多的应该是排序算法,所以对排序算法做了个总结,并自己用C++实现了一下。 一、算法概述 0.1 算法分类 十种
阅读全文
摘要:一、序列式容器(数组式容器) 对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。所以不能使用erase(it
阅读全文
摘要:这两天被人问了一个问题说假如C/C++访问下表越界的数组元素会报错么,于是充满好奇心的我动手试了一下,WTF,果然没有报错,但是会给程序带来莫名其妙的结果(比如十次的循环但是变成了死循环,但八次却可以) 例: 程序结果: C语言的编译器是不检查下标越界的,以前知道这个问题,可是没有想过是什么原因?
阅读全文
摘要:以下参考了网上的一些资料并通过程序验证。 注意,以下情况都是用gcc和g++编译器得到的结果,用vs编译器又会有所不同。 以下说下c和c++中const定义的常量的一些区别: c++中用const定义了一个常量后,不会分配一个空间给它,而是将其写入符号表(symbol table),这使得它成为一个
阅读全文
摘要:最近被问到了C++内存池的问题,其中不免涉及到在指定内存地址调用对象构造函数以及显示调用对象析构函数的情况。 C++中new的用法 new是C++中用于动态内存分配的运算符,在C语言中一般使用malloc函数。 (1)plain new顾名思义就是普通的new,就是我们惯常使用的new。分配内存,调
阅读全文
摘要:首先我们给出大小端的定义: 小端:较高的有效字节存放在较高的的存储器地址,较低的有效字节存放在较低的存储器地址。 大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。 将0x12345678写入到以1000h开始的内存中,这里0x12346578中0x12~0x78的地
阅读全文
摘要:最近在看一些Tcp网络编程方面的内容,不免涉及客户端和服务器交互的内容,其中最经典的应该是TCP的三次握手和四次挥手了。 背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外
阅读全文