logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C语言】string.h中str函数源码实现解析(strlen、strcpy、strncpy、strcat、strcmp、strstr、memcpy、memmove)

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); //检查指针

文章图片
#c语言#开发语言#后端
【C语言】string.h中str函数源码实现解析(strlen、strcpy、strncpy、strcat、strcmp、strstr、memcpy、memmove)

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); //检查指针

文章图片
#c语言#开发语言#后端
【STL】deque容器详解(deque常用的操作函数、构造函数、赋值操作、大小操作、插入和删除、数据存取)

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

文章图片
#c++#容器#数据结构 +1
【STL】vector容器详解(vector常用的操作函数、构造函数、赋值操作、容量和大小、插入和删除、数据存取、互换容器、预留空间)

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

文章图片
#c++#容器#后端 +1
【QT】枚举常用宏(Q_ENUM,Q_FLAG,Q_DECLARE_FLAGS,Q_DECLARE_OPERATORS_FOR_FLAGS)

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

文章图片
#qt#开发语言#ui
【QT】史上最全最详细的QSS样式表用法及用例说明

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

文章图片
#qt#ui
【STL】deque容器详解(deque常用的操作函数、构造函数、赋值操作、大小操作、插入和删除、数据存取)

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

文章图片
#c++#容器#数据结构 +1
【QT】如何自定义QMessageBox的窗口大小,通过继承QDialog重新实现美观的弹窗

可以看出QMessageBox原有的弹窗看起来非常的不美观,有时候大有时候小,只能使用QMessageBox自带的图标,而且**不能自定义**窗口的**大小**,那是因为在源码中将其弹窗大小设置成了比较合适的大小,所以不能自定义改变弹窗大小。可以看出通过样式表的方法也不太美观,其中text没有居中。在对某一个组件设置了setObjectName()属性之后,我们可以通过objectName在外面获

文章图片
#qt#开发语言
【Linux】11. 常见操作错误的解决办法

目录1. E325:ATTENTION错误1. E325:ATTENTION错误E325:ATTENTION错误:vim编辑异常退出的错误,这时系统会创建一个交换文件swap file以保证文件的安全性。例如:在vim编辑时突然按了ctrl+z,当再次打开.c文件时就会出现:E325:ATTENTION错误...

文章图片
#linux#vim#centos
如何为Keil安装version 5版本的ARM Compiler(Use default compliler version 5)

当打开别人的工程时,一定要看别人的工程是拿什么版本写的,如果是version 5版本写的,你用version 6去编译,当你build的时候就会出现一些错误,所以别人是什么版本写的,你就用什么版本编译。最新发布的MDK5.37已经不再安装Arm Compiler 5(ARMCC)编译器了,需要手动安装。因为在点击project→options for target后,在Target选项卡中选择AR

文章图片
#arm开发#嵌入式硬件#stm32 +2
    共 14 条
  • 1
  • 2
  • 请选择