
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
strlen函数原型:size_t strlen(const char *str);strlen返回str中字符的个数,其中str为一个以’\0’结尾的字符串(a null-terminated string)。strlen源码简单实现如果不管效率,最简单的实现只需要4行代码:size_t strlen_a(const char * str){assert(str != NULL); //检查指针

Successfully rebased and updated xxx 表示:仓库的最近一次提交是别人提交的,但是没有冲突,直接push即可。这里强烈建议使用VS Code,它真的很方便,可以很清晰的标记有冲突的两个文件(pull下来的文件和你本地修改的文件)的不同,代码的不同。那么你再次打开你的QT项目,在代码里会有

目录1. IP协议头格式2. IP地址管理2.1 IP地址的早期划分方式2.1.1 A类2.1.2 B类2.1.3 C类2.2 现在分配IP的方式:CIDR方式2.2.1 引入子网掩码3. 路由选择

目录1. 以太网协议1.1 以太网协议格式2.ARP协议2.1 arp协议的格式2.2 arp缓存表2.2.1 为什么需要arp缓存表?2.2.2 arping发送的arp数据在抓包的时候为什么没有看到广播现象?2.2.3 为什么arp缓存表当中的记录还需要老化(失效)时间?3. NAT:地址转换协议4. DNS协议1. 以太网协议网络层的IP协议负责路由选择,而具体如何从A机器到B设备,网络层并

目录1. 数组2. 数组和线性表的区别3. 线性表4. 顺序表5. 链表6. 顺序表与链表的区别1. 数组数组:在一段 连续的内存空间 存储多个 类型相同 的数据2. 数组和线性表的区别(1)数组静态分配内存,链表动态分配内存(2)数组在内存中连续,链表不连续(3)数组元素在栈区,链表元素在堆区(4)数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);(5)数组插入或删除元素的

strlen函数原型:size_t strlen(const char *str);strlen返回str中字符的个数,其中str为一个以’\0’结尾的字符串(a null-terminated string)。strlen源码简单实现如果不管效率,最简单的实现只需要4行代码:size_t strlen_a(const char * str){assert(str != NULL); //检查指针

(1)功能:双端数组,可以对头端进行插入删除操作,也可以对尾端进行插入和删除操作。vector对于头部的插入效率低,数据量越大,效率越低,例如头部后有十万个数据,则往头部插入一个数据时,十万个数据都需要往后挪一挪才能在头部插入数据。deque相对而言,对头部的插入删除速度会比vector快。vector访问元素时的速度会比deque快,这和两者内部实现有关。

(1)vector容器和数组非常相似,也称为单端数组。(2)vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展。动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间。(3)vector容器的迭代器是支持随机访问的迭代器。

1. 使用Q_ENUM之前,必须在类中先声明Q_OBJECT或Q_GADGET宏。2. Q_ENUM(枚举类型)必须放在枚举声明之后,放在前面编译器会报错。3. 用Q_ENUM声明的枚举,会自动注册到Qt元类型系统,可以使用静态函数QMetaEnum::fromType()来获取QMetaEnum。4. Qt 中,模板类 QFlags 提供了类型安*的方式保存 enum 的逻辑运算结果,来解决类型

Qt样式表支持各种属性、伪状态和子控件,可以自定义小部件的外观。QSS示例,如何为全局添加QSS样式(全局加载QSS的方法)selector { attribute: value }selector:选择器,如 QWidget、QPushButton、QGroupBox等attribute:属性,如color、background-color、border、padding等value:值,与属性对








